diff --git a/mopidy/handler.py b/mopidy/handler.py index ca643b33..48633ccb 100644 --- a/mopidy/handler.py +++ b/mopidy/handler.py @@ -35,6 +35,19 @@ class MpdHandler(object): def register_backend(self, backend): self.backend = backend + @register(r'^add "(?P[^"]*)"$') + def _add(self, uri): + pass # TODO + + @register(r'^addid "(?P[^"]*)"( (?P\d+))*$') + def _add(self, uri, position=None): + pass # TODO + return {'id': 0} + + @register(r'^clear$') + def _clear(self): + pass # TODO + @register(r'^clearerror$') def _clearerror(self): pass # TODO @@ -56,6 +69,14 @@ class MpdHandler(object): def _currentsong(self): return self.backend.current_song() + @register(r'^delete ((?P\d+)|(?P\d+):(?P\d+)*)$') + def _delete(self, position=None, start=None, end=None): + pass # TODO + + @register(r'^deleteid (?P.*)$') + def _deleteid(self, songid): + pass # TODO + @register(r'^idle( (?P.+))*$') def _idle(self, subsystems=None): pass # TODO @@ -70,6 +91,14 @@ class MpdHandler(object): return self._listplaylists() pass # TODO + @register(r'^move ((?P\d+)|(?P\d+):(?P\d+)*) (?P\d+)$') + def _move(self, position=None, start=None, end=None, to=None): + pass # TODO + + @register(r'^moveid (?P\S+) (?P\d+)$') + def _moveid(self, songid, to): + pass # TODO + @register(r'^next$') def _next(self): pass # TODO @@ -90,14 +119,38 @@ class MpdHandler(object): def _playid(self, songid): pass # TODO - @register(r'^previous$') - def _previous(self): + @register(r'^playlist$') + def _playlist(self): + return self._playlistinfo() + + @register(r'^playlistfind (?P\S+) (?P\S+)$') + def _playlistfind(self, tag, needle): + pass # TODO + + @register(r'^playlistid( (?P\S+))*$') + def _playlistid(self, songid=None): + pass # TODO + + @register(r'^playlistinfo( ((?P\d+)|(?P\d+):(?P\d+)*))*$') + def _playlistinfo(self, position=None, start=None, end=None): + pass # TODO + + @register(r'^playlistsearch (?P\S+) (?P\S+)$') + def _playlistsearch(self, tag, needle): pass # TODO @register(r'^plchanges (?P\d+)$') def _plchanges(self, version): return self.backend.playlist_changes(version) + @register(r'^plchangesposid (?P\d+)$') + def _plchangesposid(self, version): + pass # TODO + + @register(r'^previous$') + def _previous(self): + pass # TODO + @register(r'^random (?P[01])$') def _random(self, state): state = int(state) @@ -139,6 +192,10 @@ class MpdHandler(object): volume = 100 pass # TODO + @register(r'^shuffle( (?P\d+):(?P\d+)*)*$') + def _shuffle(self, start=None, end=None): + pass # TODO + @register(r'^single (?P[01])$') def _single(self, state): state = int(state) @@ -177,3 +234,11 @@ class MpdHandler(object): 'xfade': self.backend.status_xfade(), 'state': self.backend.status_state(), } + + @register(r'^swap (?P\d+) (?P\d+)$') + def _swap(self, position1, position2): + pass # TODO + + @register(r'^swapid (?P\S+) (?P\S+)$') + def _swapid(self, songid1, songid2): + pass # TODO diff --git a/tests/handlertest.py b/tests/handlertest.py index 69a45916..e11d9a55 100644 --- a/tests/handlertest.py +++ b/tests/handlertest.py @@ -231,12 +231,119 @@ class CurrentPlaylistHandlerTest(unittest.TestCase): def setUp(self): self.h = handler.MpdHandler() - pass # TODO + def test_add(self): + result = self.h.handle_request(u'add "file:///dev/urandom"') + self.assert_(result is None) + + def test_addid_without_position(self): + result = self.h.handle_request(u'addid "file:///dev/urandom"') + self.assert_('id' in result) + + def test_addid_with_position(self): + result = self.h.handle_request(u'addid "file:///dev/urandom" 0') + self.assert_('id' in result) + + def test_clear(self): + result = self.h.handle_request(u'clear') + self.assert_(result is None) + + def test_delete_position(self): + result = self.h.handle_request(u'delete 5') + self.assert_(result is None) + + def test_delete_open_range(self): + result = self.h.handle_request(u'delete 10:') + self.assert_(result is None) + + def test_delete_closed_range(self): + result = self.h.handle_request(u'delete 10:20') + self.assert_(result is None) + + def test_deleteid(self): + result = self.h.handle_request(u'deleteid 0') + self.assert_(result is None) + + def test_move_position(self): + result = self.h.handle_request(u'move 5 0') + self.assert_(result is None) + + def test_move_open_range(self): + result = self.h.handle_request(u'move 10: 0') + self.assert_(result is None) + + def test_move_closed_range(self): + result = self.h.handle_request(u'move 10:20 0') + self.assert_(result is None) + + def test_moveid(self): + result = self.h.handle_request(u'moveid 0 10') + self.assert_(result is None) + + def test_playlist_returns_same_as_playlistinfo(self): + playlist_result = self.h.handle_request(u'playlist') + playlistinfo_result = self.h.handle_request(u'playlistinfo') + self.assertEquals(playlist_result, playlistinfo_result) + + def test_playlistfind(self): + result = self.h.handle_request(u'playlistfind tag needle') + self.assert_(result is None) + + def test_playlistid_without_songid(self): + result = self.h.handle_request(u'playlistid') + self.assert_(result is None) + + def test_playlistid_with_songid(self): + result = self.h.handle_request(u'playlistid 10') + self.assert_(result is None) + + def test_playlistinfo_without_position_or_range(self): + result = self.h.handle_request(u'playlistinfo') + self.assert_(result is None) + + def test_playlistinfo_with_position(self): + result = self.h.handle_request(u'playlistinfo 5') + self.assert_(result is None) + + def test_playlistinfo_with_open_range(self): + result = self.h.handle_request(u'playlistinfo 10:') + self.assert_(result is None) + + def test_playlistinfo_with_closed_range(self): + result = self.h.handle_request(u'playlistinfo 10:20') + self.assert_(result is None) + + def test_playlistsearch(self): + result = self.h.handle_request(u'playlistsearch tag needle') + self.assert_(result is None) def test_plchanges(self): result = self.h.handle_request(u'plchanges 0') self.assert_(result is None) + def test_plchangesposid(self): + result = self.h.handle_request(u'plchangesposid 0') + self.assert_(result is None) + + def test_shuffle_without_range(self): + result = self.h.handle_request(u'shuffle') + self.assert_(result is None) + + def test_shuffle_with_open_range(self): + result = self.h.handle_request(u'shuffle 10:') + self.assert_(result is None) + + def test_shuffle_with_closed_range(self): + result = self.h.handle_request(u'shuffle 10:20') + self.assert_(result is None) + + def test_swap(self): + result = self.h.handle_request(u'swap 10 20') + self.assert_(result is None) + + def test_swapid(self): + result = self.h.handle_request(u'swapid 10 20') + self.assert_(result is None) + class StoredPlaylistsHandlerTest(unittest.TestCase): def setUp(self):