From 21153dd52b9f026b708fb9ad01d137f2696df128 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Sun, 20 Mar 2011 00:29:43 +0100 Subject: [PATCH] Update MPD/regression tests --- mopidy/frontends/mpd/protocol/status.py | 38 ++++++++++++---------- tests/frontends/mpd/regression_test.py | 43 +++++++++++++++++-------- 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/mopidy/frontends/mpd/protocol/status.py b/mopidy/frontends/mpd/protocol/status.py index e18f1ea4..9de82756 100644 --- a/mopidy/frontends/mpd/protocol/status.py +++ b/mopidy/frontends/mpd/protocol/status.py @@ -1,5 +1,6 @@ from mopidy.frontends.mpd.protocol import handle_pattern from mopidy.frontends.mpd.exceptions import MpdNotImplemented +from mopidy.backends.base import PlaybackController @handle_pattern(r'^clearerror$') def clearerror(frontend): @@ -152,28 +153,28 @@ def status(frontend): def _status_bitrate(frontend): if frontend.backend.playback.current_track is not None: - return frontend.backend.playback.current_track.bitrate + return frontend.backend.playback.current_track.get().bitrate def _status_consume(frontend): - if frontend.backend.playback.consume: + if frontend.backend.playback.consume.get(): return 1 else: return 0 def _status_playlist_length(frontend): - return len(frontend.backend.current_playlist.tracks) + return len(frontend.backend.current_playlist.tracks.get()) def _status_playlist_version(frontend): - return frontend.backend.current_playlist.version + return frontend.backend.current_playlist.version.get() def _status_random(frontend): - return int(frontend.backend.playback.random) + return int(frontend.backend.playback.random.get()) def _status_repeat(frontend): - return int(frontend.backend.playback.repeat) + return int(frontend.backend.playback.repeat.get()) def _status_single(frontend): - return int(frontend.backend.playback.single) + return int(frontend.backend.playback.single.get()) def _status_songid(frontend): if frontend.backend.playback.current_cpid is not None: @@ -182,14 +183,15 @@ def _status_songid(frontend): return _status_songpos(frontend) def _status_songpos(frontend): - return frontend.backend.playback.current_playlist_position + return frontend.backend.playback.current_playlist_position.get() def _status_state(frontend): - if frontend.backend.playback.state == frontend.backend.playback.PLAYING: + state = frontend.backend.playback.state.get() + if state == PlaybackController.PLAYING: return u'play' - elif frontend.backend.playback.state == frontend.backend.playback.STOPPED: + elif state == PlaybackController.STOPPED: return u'stop' - elif frontend.backend.playback.state == frontend.backend.playback.PAUSED: + elif state == PlaybackController.PAUSED: return u'pause' def _status_time(frontend): @@ -197,19 +199,21 @@ def _status_time(frontend): _status_time_total(frontend) // 1000) def _status_time_elapsed(frontend): - return frontend.backend.playback.time_position + return frontend.backend.playback.time_position.get() def _status_time_total(frontend): - if frontend.backend.playback.current_track is None: + current_track = frontend.backend.playback.current_track.get() + if current_track is None: return 0 - elif frontend.backend.playback.current_track.length is None: + elif current_track.length is None: return 0 else: - return frontend.backend.playback.current_track.length + return current_track.length def _status_volume(frontend): - if frontend.backend.mixer.volume is not None: - return frontend.backend.mixer.volume + volume = frontend.mixer.volume.get() + if volume is not None: + return volume else: return 0 diff --git a/tests/frontends/mpd/regression_test.py b/tests/frontends/mpd/regression_test.py index 7e7163d8..1d661b5a 100644 --- a/tests/frontends/mpd/regression_test.py +++ b/tests/frontends/mpd/regression_test.py @@ -18,26 +18,31 @@ class IssueGH17RegressionTest(unittest.TestCase): """ def setUp(self): - self.backend = DummyBackend(mixer_class=DummyMixer) + self.backend = DummyBackend.start().proxy() self.backend.current_playlist.append([ Track(uri='a'), Track(uri='b'), None, Track(uri='d'), Track(uri='e'), Track(uri='f')]) - self.mpd = dispatcher.MpdDispatcher(backend=self.backend) + self.mixer = DummyMixer.start().proxy() + self.mpd = dispatcher.MpdDispatcher() + + def tearDown(self): + self.backend.stop().get() + self.mixer.stop().get() def test(self): random.seed(1) # Playlist order: abcfde self.mpd.handle_request(u'play') - self.assertEquals('a', self.backend.playback.current_track.uri) + self.assertEquals('a', self.backend.playback.current_track.get().uri) self.mpd.handle_request(u'random "1"') self.mpd.handle_request(u'next') - self.assertEquals('b', self.backend.playback.current_track.uri) + self.assertEquals('b', self.backend.playback.current_track.get().uri) self.mpd.handle_request(u'next') # Should now be at track 'c', but playback fails and it skips ahead - self.assertEquals('f', self.backend.playback.current_track.uri) + self.assertEquals('f', self.backend.playback.current_track.get().uri) self.mpd.handle_request(u'next') - self.assertEquals('d', self.backend.playback.current_track.uri) + self.assertEquals('d', self.backend.playback.current_track.get().uri) self.mpd.handle_request(u'next') - self.assertEquals('e', self.backend.playback.current_track.uri) + self.assertEquals('e', self.backend.playback.current_track.get().uri) class IssueGH18RegressionTest(unittest.TestCase): @@ -52,11 +57,16 @@ class IssueGH18RegressionTest(unittest.TestCase): """ def setUp(self): - self.backend = DummyBackend(mixer_class=DummyMixer) + self.backend = DummyBackend.start().proxy() self.backend.current_playlist.append([ Track(uri='a'), Track(uri='b'), Track(uri='c'), Track(uri='d'), Track(uri='e'), Track(uri='f')]) - self.mpd = dispatcher.MpdDispatcher(backend=self.backend) + self.mixer = DummyMixer.start().proxy() + self.mpd = dispatcher.MpdDispatcher() + + def tearDown(self): + self.backend.stop().get() + self.mixer.stop().get() def test(self): random.seed(1) @@ -67,11 +77,11 @@ class IssueGH18RegressionTest(unittest.TestCase): self.mpd.handle_request(u'next') self.mpd.handle_request(u'next') - cp_track_1 = self.backend.playback.current_cp_track + cp_track_1 = self.backend.playback.current_cp_track.get() self.mpd.handle_request(u'next') - cp_track_2 = self.backend.playback.current_cp_track + cp_track_2 = self.backend.playback.current_cp_track.get() self.mpd.handle_request(u'next') - cp_track_3 = self.backend.playback.current_cp_track + cp_track_3 = self.backend.playback.current_cp_track.get() self.assertNotEqual(cp_track_1, cp_track_2) self.assertNotEqual(cp_track_2, cp_track_3) @@ -91,11 +101,16 @@ class IssueGH22RegressionTest(unittest.TestCase): """ def setUp(self): - self.backend = DummyBackend(mixer_class=DummyMixer) + self.backend = DummyBackend.start().proxy() self.backend.current_playlist.append([ Track(uri='a'), Track(uri='b'), Track(uri='c'), Track(uri='d'), Track(uri='e'), Track(uri='f')]) - self.mpd = dispatcher.MpdDispatcher(backend=self.backend) + self.mixer = DummyMixer.start().proxy() + self.mpd = dispatcher.MpdDispatcher() + + def tearDown(self): + self.backend.stop().get() + self.mixer.stop().get() def test(self): random.seed(1)