From cf0b666a0afa2c5b34eca8f472e8cf621e86f250 Mon Sep 17 00:00:00 2001 From: Lasse Bigum Date: Sun, 1 Mar 2015 15:22:21 +0100 Subject: [PATCH] Add tests for PlaybackController get_current_(tl_)track Add some more test cases for PlaybackController --- tests/core/test_playback.py | 70 +++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/tests/core/test_playback.py b/tests/core/test_playback.py index 11d63e04..3b6435c8 100644 --- a/tests/core/test_playback.py +++ b/tests/core/test_playback.py @@ -43,9 +43,51 @@ class CorePlaybackTest(unittest.TestCase): self.tl_tracks = self.core.tracklist.tl_tracks self.unplayable_tl_track = self.tl_tracks[2] - # TODO Test get_current_tl_track + def test_get_current_tl_track_none(self): + self.core.playback.set_current_tl_track(None) - # TODO Test get_current_track + self.assertEqual( + self.core.playback.get_current_tl_track(), None) + + def test_get_current_tl_track_play(self): + self.core.playback.play(self.tl_tracks[0]) + + self.assertEqual( + self.core.playback.get_current_tl_track(), self.tl_tracks[0]) + + def test_get_current_tl_track_next(self): + self.core.playback.play(self.tl_tracks[0]) + self.core.playback.next() + + self.assertEqual( + self.core.playback.get_current_tl_track(), self.tl_tracks[1]) + + def test_get_current_tl_track_prev(self): + self.core.playback.play(self.tl_tracks[1]) + self.core.playback.previous() + + self.assertEqual( + self.core.playback.get_current_tl_track(), self.tl_tracks[0]) + + def test_get_current_track_play(self): + self.core.playback.play(self.tl_tracks[0]) + + self.assertEqual( + self.core.playback.get_current_track(), self.tracks[0]) + + def test_get_current_track_next(self): + self.core.playback.play(self.tl_tracks[0]) + self.core.playback.next() + + self.assertEqual( + self.core.playback.get_current_track(), self.tracks[1]) + + def test_get_current_track_prev(self): + self.core.playback.play(self.tl_tracks[1]) + self.core.playback.previous() + + self.assertEqual( + self.core.playback.get_current_track(), self.tracks[0]) # TODO Test state @@ -385,6 +427,30 @@ class CorePlaybackTest(unittest.TestCase): 'track_playback_started', tl_track=self.tl_tracks[1]), ]) + @mock.patch( + 'mopidy.core.playback.listener.CoreListener', spec=core.CoreListener) + def test_seek_past_end_of_track_emits_events(self, listener_mock): + self.core.playback.play(self.tl_tracks[0]) + listener_mock.reset_mock() + + self.core.playback.seek(self.tracks[0].length * 5) + + self.assertListEqual( + listener_mock.send.mock_calls, + [ + mock.call( + 'playback_state_changed', + old_state='playing', new_state='stopped'), + mock.call( + 'track_playback_ended', + tl_track=self.tl_tracks[0], time_position=mock.ANY), + mock.call( + 'playback_state_changed', + old_state='stopped', new_state='playing'), + mock.call( + 'track_playback_started', tl_track=self.tl_tracks[1]), + ]) + def test_seek_selects_dummy1_backend(self): self.core.playback.play(self.tl_tracks[0]) self.core.playback.seek(10000)