Add pytest suite, unlimited daily cap, and vocal batch generator.

Tests cover curation, Lyria, queue, and API routes. Setting max_new_songs_per_day to 0 disables the limit; generate-batch runs 20 curated multilingual vocal directions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-07 15:33:58 +01:00
parent b2aad43a44
commit 98890b9581
13 changed files with 736 additions and 9 deletions
+27
View File
@@ -0,0 +1,27 @@
from __future__ import annotations
from pathlib import Path
import pytest
from ozan_radio.stats import cost_per_track, record_generation, today_stats
def test_cost_per_track_pro():
costs = {"lyria_pro_usd": 0.08, "lyria_clip_usd": 0.04, "deepseek_per_track_usd": 0.002}
assert cost_per_track("lyria-3-pro-preview", costs) == pytest.approx(0.082)
def test_cost_per_track_clip():
costs = {"lyria_pro_usd": 0.08, "lyria_clip_usd": 0.04, "deepseek_per_track_usd": 0.002}
assert cost_per_track("lyria-3-clip-preview", costs) == 0.04
def test_record_and_today_stats(tmp_path: Path):
out = tmp_path / "songs"
out.mkdir()
record_generation(out, 0.082, "abc", "Test Track")
stats = today_stats(out)
assert stats["generated"] == 1
assert stats["estimated_usd"] == pytest.approx(0.082)
assert stats["tracks"][0]["title"] == "Test Track"