diff options
Diffstat (limited to 'tests/test_compose_mml_tool.py')
| -rw-r--r-- | tests/test_compose_mml_tool.py | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/tests/test_compose_mml_tool.py b/tests/test_compose_mml_tool.py index c33e737..4f904e4 100644 --- a/tests/test_compose_mml_tool.py +++ b/tests/test_compose_mml_tool.py @@ -1,7 +1,5 @@ """Exhaustive tests for the compose_mml MCP tool.""" -from pathlib import Path - VALID_PPMCK = """#TITLE "Test" A t120 l4 o4 v15 q2 c e g c @@ -27,8 +25,10 @@ VALID_PYXEL = """0: T120 L4 O4 V100 @1 def test_compose_ppmck(compose_mml, tmp_output_dir): result = compose_mml(action="compose", mml=VALID_PPMCK, mode="ppmck") assert result["success"] is True - assert result["wav_path"] is not None - assert Path(result["wav_path"]).exists() + assert result["audio"]["mime_type"] == "audio/wav" + assert result["audio"]["size_bytes"] > 44 + assert "wav_path" not in result + assert list(tmp_output_dir.rglob("output.wav")) assert result["duration_sec"] > 0 assert result["note_sequence"] is not None assert "validation" in result @@ -39,8 +39,9 @@ def test_compose_ppmck(compose_mml, tmp_output_dir): def test_compose_pyxel(compose_mml, tmp_output_dir): result = compose_mml(action="compose", mml=VALID_PYXEL, mode="pyxel") assert result["success"] is True - assert result["wav_path"] is not None - assert Path(result["wav_path"]).exists() + assert result["audio"]["mime_type"] == "audio/wav" + assert "wav_path" not in result + assert list(tmp_output_dir.rglob("output.wav")) assert result["duration_sec"] > 0 @@ -95,7 +96,7 @@ def test_synthesis_templates_compose(compose_mml, tmp_output_dir): f"{mode}/{template} synthesis failed: {result['validation']}" ) assert result["duration_sec"] > 0 - assert Path(result["wav_path"]).exists() + assert result["audio"]["size_bytes"] > 44 def test_template_invalid_fallback(compose_mml): @@ -131,7 +132,8 @@ def test_compose_unknown_mode(compose_mml): def test_compose_with_syntax_error(compose_mml): result = compose_mml(action="compose", mml="A t0\n c", mode="ppmck") assert result["success"] is False - assert result["wav_path"] is None + assert result["audio"] is None + assert "wav_path" not in result assert result["duration_sec"] == 0 assert any(e["severity"] == "error" for e in result["validation"]["errors"]) @@ -168,8 +170,7 @@ def test_compose_normalize(compose_mml, tmp_output_dir): on = compose_mml(action="compose", mml=base, mode="pyxel", normalize=True) off = compose_mml(action="compose", mml=base, mode="pyxel", normalize=False) assert on["success"] and off["success"] - assert Path(on["wav_path"]).exists() - assert Path(off["wav_path"]).exists() + assert len(list(tmp_output_dir.rglob("output.wav"))) == 2 def test_compose_creates_timestamped_output_directory(compose_mml, tmp_output_dir): @@ -182,14 +183,9 @@ def test_compose_creates_timestamped_output_directory(compose_mml, tmp_output_di assert result1["success"] is True assert result2["success"] is True - path1 = result1["wav_path"] - path2 = result2["wav_path"] - assert path1 is not None - assert path2 is not None - assert path1 != path2, "Two compose calls produced the same output directory" - - p1 = Path(path1) - p2 = Path(path2) + paths = sorted(tmp_output_dir.rglob("output.wav")) + assert len(paths) == 2 + p1, p2 = paths assert p1.exists() assert p2.exists() assert p1.name == "output.wav" |
