# SPDX-License-Identifier: 0BSD """Tests for :mod:`meshchatx.src.backend.ringtone_manager`. The manager performs conversion in-process via ``audio_codec`` (miniaudio + LXST). These tests pin the contract that ``convert_to_ringtone`` decodes any supported audio container and produces a stored OGG/Opus ringtone. """ import io import math import os import struct import wave from unittest.mock import MagicMock, patch import pytest from meshchatx.src.backend.ringtone_manager import RingtoneManager def _build_wav_pcm16(duration_seconds: float = 0.4, samplerate: int = 48000) -> bytes: n_samples = int(samplerate * duration_seconds) buf = io.BytesIO() with wave.open(buf, "wb") as wf: wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(samplerate) frames = bytearray() for i in range(n_samples): sample = int(0.3 * 32767 * math.sin(2 * math.pi * 440.0 * (i / samplerate))) frames.extend(struct.pack("