summaryrefslogtreecommitdiff
path: root/tests/test_server.py
blob: f858e0f6b4648ba031d0eddd7d92dff468332666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""Tests for MCP server compose_mml tool."""

from mml_composemusic_mcp.server import _execute_compose_mml


def compose_mml(**kwargs):
    return _execute_compose_mml(**kwargs).result

PPMCK_MML = """#TITLE "Test"
A t120 l4 o4 v15 q2
  c e g c
"""


def test_compose_ppmck():
    result = compose_mml(action="compose", mml=PPMCK_MML, mode="ppmck")
    assert result["success"] is True
    assert result["audio"]["mime_type"] == "audio/wav"
    assert "wav_path" not in result
    assert result["duration_sec"] > 0


def test_validate_ppmck():
    result = compose_mml(action="validate", mml=PPMCK_MML, mode="ppmck")
    assert result["valid"] is True
    assert result["channel_summary"]


def test_template():
    result = compose_mml(action="template", mode="pyxel", template="basic")
    assert "mml" in result
    assert "0:" in result["mml"]


def test_compose_error():
    result = compose_mml(action="compose", mml="A t0\n  c", mode="ppmck")
    assert result["success"] is False
    assert any(e["severity"] == "error" for e in result["validation"]["errors"])