diff --git a/src/aura_engine/scheduling/api.py b/src/aura_engine/scheduling/api.py index 80e878266e0d00b1a4678edfe6036d9854f9587f..1db5168800e0740e2e8d04ea94112e2deadf60cd 100644 --- a/src/aura_engine/scheduling/api.py +++ b/src/aura_engine/scheduling/api.py @@ -53,6 +53,7 @@ from aura_steering_api.models.playout_program_entry import ( ) from aura_tank_api.models.playlist import Playlist as API_PLAYLIST from aura_tank_api.models.playlist_entry import PlaylistEntry as API_PLAYLIST_ENTRY +from aura_tank_api.types import Unset ApiResult = NamedTuple( "ApiResult", @@ -248,9 +249,21 @@ class ApiFetcher(threading.Thread): # Files do have a metadata object if entry.file and entry.file.metadata: metadata = PlaylistItem.Metadata( - artist=entry.file.metadata.artist, - album=entry.file.metadata.album, - title=entry.file.metadata.title, + artist=( + "" + if isinstance(entry.file.metadata.artist, Unset) + else entry.file.metadata.artist + ), + album=( + "" + if isinstance(entry.file.metadata.album, Unset) + else entry.file.metadata.album + ), + title=( + "" + if isinstance(entry.file.metadata.title, Unset) + else entry.file.metadata.title + ), ) item = PlaylistItem(entry.uri, entry.duration, 100, metadata) diff --git a/tests/json/tank-api-v1-playlists-2.json b/tests/json/tank-api-v1-playlists-2.json index 64d709db1fe81e8b4245509070e1b0b72667a94d..e89f7a2873f053167b5f4067e8c8ab7e6959153c 100644 --- a/tests/json/tank-api-v1-playlists-2.json +++ b/tests/json/tank-api-v1-playlists-2.json @@ -21,11 +21,7 @@ "state": "done" } }, - "metadata": { - "artist": "Peaches", - "title": "AA XXX", - "album": "The Teaches of Peaches" - }, + "metadata": {}, "size": 36496517, "duration": 199 } @@ -71,4 +67,4 @@ } } ] -} +} \ No newline at end of file diff --git a/tests/test_scheduling_api_fetcher.py b/tests/test_scheduling_api_fetcher.py index 7402339f2560b732a98f9f5e2680a4e01bf53185..41d9ad1ba8b51b5f118c48b8e60c793ef4229a9e 100644 --- a/tests/test_scheduling_api_fetcher.py +++ b/tests/test_scheduling_api_fetcher.py @@ -255,9 +255,11 @@ class TestSchedulingApiFetcher(unittest.TestCase): self.assertEqual(100, pl_items[0].volume) self.assertEqual("file://musikprogramm/303", pl_items[0].source) self.assertEqual(199, pl_items[0].duration) - self.assertEqual("Peaches", pl_items[0].metadata.artist) - self.assertEqual("The Teaches of Peaches", pl_items[0].metadata.album) - self.assertEqual("AA XXX", pl_items[0].metadata.title) + + # Faulty metadata is set to an empty string + self.assertEqual("", pl_items[0].metadata.artist) + self.assertEqual("", pl_items[0].metadata.album) + self.assertEqual("", pl_items[0].metadata.title) # Playlist Item 2 self.assertEqual(100, pl_items[1].volume)