/
/
/
1"""Tests for MSX Pydantic models."""
2
3from music_assistant.providers.msx_bridge.models import MsxContent, MsxItem, MsxTemplate
4
5
6def test_msx_template_serialization() -> None:
7 """Test MsxTemplate serialization with aliases."""
8 template = MsxTemplate(type="separate", layout="0,0,2,4", image_filler="default")
9 data = template.model_dump(by_alias=True, exclude_none=True)
10 assert data["type"] == "separate"
11 assert data["layout"] == "0,0,2,4"
12 assert data["imageFiller"] == "default"
13 assert "image_filler" not in data
14
15
16def test_msx_template_new_fields() -> None:
17 """Test MsxTemplate serialization with imageWidth and color."""
18 template = MsxTemplate(type="default", layout="0,0,6,1", image_width=0.83, color="msx-glass")
19 data = template.model_dump(by_alias=True, exclude_none=True)
20 assert data["type"] == "default"
21 assert data["layout"] == "0,0,6,1"
22 assert data["imageWidth"] == 0.83
23 assert data["color"] == "msx-glass"
24 assert "image_width" not in data
25
26
27def test_msx_item_serialization() -> None:
28 """Test MsxItem serialization with aliases and duration."""
29 item = MsxItem(
30 title="Test Title",
31 title_header="Test Header",
32 player_label="Test Player Label",
33 title_footer="Test Footer",
34 duration=180,
35 )
36 data = item.model_dump(by_alias=True, exclude_none=True)
37 assert data["title"] == "Test Title"
38 assert data["titleHeader"] == "Test Header"
39 assert data["playerLabel"] == "Test Player Label"
40 assert data["titleFooter"] == "Test Footer"
41 assert data["duration"] == 180
42 assert "title_header" not in data
43
44
45def test_msx_content_serialization() -> None:
46 """Test MsxContent serialization with nested models."""
47 content = MsxContent(
48 headline="Test Headline",
49 template=MsxTemplate(type="list"),
50 items=[MsxItem(title="Item 1"), MsxItem(title="Item 2")],
51 )
52 data = content.model_dump(by_alias=True, exclude_none=True)
53 assert data["headline"] == "Test Headline"
54 assert data["template"]["type"] == "list"
55 assert len(data["items"]) == 2
56 assert data["items"][0]["title"] == "Item 1"
57