From: Marcel van der Veldt Date: Fri, 12 Apr 2024 23:08:31 +0000 (+0200) Subject: fix parse_uri X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=345b46821b0ab8c36f1852f10b082e7261b6b8ed;p=music-assistant-server.git fix parse_uri --- diff --git a/music_assistant/common/helpers/uri.py b/music_assistant/common/helpers/uri.py index 7ac7e325..2bbb168c 100644 --- a/music_assistant/common/helpers/uri.py +++ b/music_assistant/common/helpers/uri.py @@ -54,7 +54,7 @@ async def parse_uri(uri: str, validate_id: bool = False) -> tuple[MediaType, str elif "/" in uri and await asyncio.to_thread(os.path.isfile, uri): # Translate a local file (which is not from file provider) to the URL provider provider_instance_id_or_domain = "url" - media_type = MediaType.TRACK + media_type = MediaType.UNKNOWN item_id = uri else: raise KeyError diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 24f0ab81..6a4b0b52 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -5,6 +5,7 @@ import pytest from music_assistant.common.helpers import uri, util from music_assistant.common.models import media_items from music_assistant.common.models.errors import MusicAssistantError +from music_assistant.constants import SILENCE_FILE def test_version_extract() -> None: @@ -41,6 +42,18 @@ async def test_uri_parsing() -> None: assert media_type == media_items.MediaType.TRACK assert provider == "filesystem" assert item_id == "Artist/Album/Track.flac" + # test regular url to URL provider + test_uri = "http://radiostream.io/stream.mp3" + media_type, provider, item_id = await uri.parse_uri(test_uri) + assert media_type == media_items.MediaType.UNKNOWN + assert provider == "url" + assert item_id == "http://radiostream.io/stream.mp3" + # test local file to URL provider + test_uri = SILENCE_FILE + media_type, provider, item_id = await uri.parse_uri(test_uri) + assert media_type == media_items.MediaType.UNKNOWN + assert provider == "url" + assert item_id == SILENCE_FILE # test invalid uri with pytest.raises(MusicAssistantError): await uri.parse_uri("invalid://blah")