fix parse_uri
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 12 Apr 2024 23:08:31 +0000 (01:08 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 12 Apr 2024 23:08:31 +0000 (01:08 +0200)
music_assistant/common/helpers/uri.py
tests/test_helpers.py

index 7ac7e325be6fd5b7e494f7df86d171669d1bbe2d..2bbb168c72f22de4d85c14299e9d1c4b81920acf 100644 (file)
@@ -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
index 24f0ab818c4b2300a8f47794e8de1d49f8ebf170..6a4b0b5272e751498016413d313e15afd715027d 100644 (file)
@@ -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")