mirror of
https://github.com/remsky/Kokoro-FastAPI.git
synced 2025-04-13 09:39:17 +00:00
69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
"""Tests for AudioService"""
|
|
|
|
import numpy as np
|
|
import pytest
|
|
|
|
from api.src.services.audio import AudioService
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_audio():
|
|
"""Generate a simple sine wave for testing"""
|
|
sample_rate = 24000
|
|
duration = 0.1 # 100ms
|
|
t = np.linspace(0, duration, int(sample_rate * duration))
|
|
frequency = 440 # A4 note
|
|
return np.sin(2 * np.pi * frequency * t).astype(np.float32), sample_rate
|
|
|
|
|
|
def test_convert_to_wav(sample_audio):
|
|
"""Test converting to WAV format"""
|
|
audio_data, sample_rate = sample_audio
|
|
result = AudioService.convert_audio(audio_data, sample_rate, "wav")
|
|
assert isinstance(result, bytes)
|
|
assert len(result) > 0
|
|
|
|
|
|
def test_convert_to_mp3(sample_audio):
|
|
"""Test converting to MP3 format"""
|
|
audio_data, sample_rate = sample_audio
|
|
result = AudioService.convert_audio(audio_data, sample_rate, "mp3")
|
|
assert isinstance(result, bytes)
|
|
assert len(result) > 0
|
|
|
|
|
|
def test_convert_to_opus(sample_audio):
|
|
"""Test converting to Opus format"""
|
|
audio_data, sample_rate = sample_audio
|
|
result = AudioService.convert_audio(audio_data, sample_rate, "opus")
|
|
assert isinstance(result, bytes)
|
|
assert len(result) > 0
|
|
|
|
|
|
def test_convert_to_flac(sample_audio):
|
|
"""Test converting to FLAC format"""
|
|
audio_data, sample_rate = sample_audio
|
|
result = AudioService.convert_audio(audio_data, sample_rate, "flac")
|
|
assert isinstance(result, bytes)
|
|
assert len(result) > 0
|
|
|
|
|
|
def test_convert_to_aac_raises_error(sample_audio):
|
|
"""Test that converting to AAC raises an error"""
|
|
audio_data, sample_rate = sample_audio
|
|
with pytest.raises(ValueError, match="AAC format is not currently supported"):
|
|
AudioService.convert_audio(audio_data, sample_rate, "aac")
|
|
|
|
|
|
def test_convert_to_pcm_raises_error(sample_audio):
|
|
"""Test that converting to PCM raises an error"""
|
|
audio_data, sample_rate = sample_audio
|
|
with pytest.raises(ValueError, match="PCM format is not currently supported"):
|
|
AudioService.convert_audio(audio_data, sample_rate, "pcm")
|
|
|
|
|
|
def test_convert_to_invalid_format_raises_error(sample_audio):
|
|
"""Test that converting to an invalid format raises an error"""
|
|
audio_data, sample_rate = sample_audio
|
|
with pytest.raises(ValueError, match="Format invalid not supported"):
|
|
AudioService.convert_audio(audio_data, sample_rate, "invalid")
|