music-assistant-server

1.1 KBPY
test_playlists.py
1.1 KB30 lines • python
1"""Tests for playlist parsing helpers."""
2
3from music_assistant.helpers.playlists import parse_m3u
4
5
6def test_m3u_extinf_duration_not_truncated() -> None:
7    """Test that EXTINF duration is parsed as full string, not truncated to first char."""
8    m3u_data = "#EXTM3U\n#EXTINF:120,Test Song\nhttp://example.com/song.mp3\n"
9    result = parse_m3u(m3u_data)
10    assert len(result) == 1
11    assert result[0].length == "120"
12    assert result[0].title == "Test Song"
13
14
15def test_m3u_extinf_negative_duration() -> None:
16    """Test that EXTINF with -1 duration is treated as None (unknown length)."""
17    m3u_data = "#EXTM3U\n#EXTINF:-1,Live Stream\nhttp://example.com/stream\n"
18    result = parse_m3u(m3u_data)
19    assert len(result) == 1
20    assert result[0].length is None
21    assert result[0].title == "Live Stream"
22
23
24def test_m3u_extinf_single_digit_duration() -> None:
25    """Test that single-digit durations still work correctly."""
26    m3u_data = "#EXTM3U\n#EXTINF:5,Short Clip\nhttp://example.com/clip.mp3\n"
27    result = parse_m3u(m3u_data)
28    assert len(result) == 1
29    assert result[0].length == "5"
30