diff --git a/software/src/app.py b/software/src/app.py index db6a322..8f848bc 100644 --- a/software/src/app.py +++ b/software/src/app.py @@ -69,7 +69,7 @@ class PlayerApp: def _set_playlist(self, tag: bytes): self.playlist = self.playlist_db.getPlaylistForTag(tag) - self._play(self.playlist.getCurrentPath()) + self._play(self.playlist.getCurrentPath() if self.playlist is not None else None) def _play_next(self): if self.playlist is None: diff --git a/software/tests/test_playerapp.py b/software/tests/test_playerapp.py index f891f46..7859b53 100644 --- a/software/tests/test_playerapp.py +++ b/software/tests/test_playerapp.py @@ -137,3 +137,21 @@ def test_playlist_seq(micropythonify, faketimermanager, monkeypatch): fake_mp3.track = None dut.onPlaybackDone() assert fake_mp3.track is None + + +def test_playlist_unknown_tag(micropythonify, faketimermanager, monkeypatch): + class FakeNoPlaylistDb: + def getPlaylistForTag(self, tag): + return None + + fake_db = FakeNoPlaylistDb() + fake_mp3 = FakeMp3Player() + deps = app.Dependencies(mp3player=lambda _: fake_mp3, + nfcreader=lambda _: FakeNfcReader(), + buttons=lambda _: FakeButtons(), + playlistdb=lambda _: fake_db) + dut = app.PlayerApp(deps) + with monkeypatch.context() as m: + m.setattr(builtins, 'open', fake_open) + dut.onTagChange([23, 42, 1, 2, 3]) + assert fake_mp3.track is None