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
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:
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")