diff --git a/tests/backends/get_test.py b/tests/backends/get_test.py new file mode 100644 index 00000000..9d962fe3 --- /dev/null +++ b/tests/backends/get_test.py @@ -0,0 +1,46 @@ +import unittest + +from mopidy.backends.dummy import DummyBackend, DummyCurrentPlaylistController +from mopidy.models import Playlist, Track + +class CurrentPlaylistGetTest(unittest.TestCase): + def setUp(self): + self.b = DummyBackend() + self.c = self.b.current_playlist + + def test_get_by_id_returns_unique_match(self): + track = Track(id=1) + self.c.playlist = Playlist(tracks=[Track(id=13), track, Track(id=17)]) + self.assertEqual(track, self.c.get_by_id(1)) + + def test_get_by_id_returns_first_of_multiple_matches(self): + track = Track(id=1) + self.c.playlist = Playlist(tracks=[Track(id=13), track, track]) + self.assertEqual(track, self.c.get_by_id(1)) + + def test_get_by_id_raises_keyerror_if_no_match(self): + self.c.playlist = Playlist(tracks=[Track(id=13), Track(id=17)]) + try: + self.c.get_by_id(1) + self.fail(u'Should raise KeyError if no match') + except KeyError: + pass + + def test_get_by_uri_returns_unique_match(self): + track = Track(uri='a') + self.c.playlist = Playlist( + tracks=[Track(uri='z'), track, Track(uri='y')]) + self.assertEqual(track, self.c.get_by_uri('a')) + + def test_get_by_uri_returns_first_of_multiple_matches(self): + track = Track(uri='a') + self.c.playlist = Playlist(tracks=[Track(uri='z'), track, track]) + self.assertEqual(track, self.c.get_by_uri('a')) + + def test_get_by_uri_raises_keyerror_if_no_match(self): + self.c.playlist = Playlist(tracks=[Track(uri='z'), Track(uri='y')]) + try: + self.c.get_by_uri('a') + self.fail(u'Should raise KeyError if no match') + except KeyError: + pass