/
/
/
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