Files
ozan 98890b9581 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>
2026-06-07 15:33:58 +01:00

38 lines
1.1 KiB
Python

from __future__ import annotations
from pathlib import Path
from ozan_radio.curation import (
curation_summary_for_dj,
default_curation_block,
list_curated_tracks,
)
def test_default_curation_block_shape():
block = default_curation_block()
assert block["rating"] == "unrated"
assert block["public_playlist"] is True
assert block["shuffle_weight"] == 1.0
def test_list_curated_tracks_sorts_love_first(songs_dir: Path):
tracks = list_curated_tracks(songs_dir)
assert len(tracks) == 2
assert tracks[0]["title"] == "Sahara Test"
assert tracks[0]["curation"]["rating"] == "love"
def test_curation_summary_includes_loved_and_avoid(songs_dir: Path):
summary = curation_summary_for_dj(songs_dir)
assert "Sahara Test [love]" in summary
assert "saz" in summary
assert "electric guitar" in summary
assert "Bad Intro" not in summary # skip-rated omitted from lines
def test_curation_summary_empty_dir(tmp_path: Path):
empty = tmp_path / "songs"
empty.mkdir()
assert curation_summary_for_dj(empty) == "No curated library yet."