async def test_playlist_eof_reached(app_mock, song, mocker): mock_emit = mocker.patch.object(Signal, 'emit') pl = Playlist(app_mock) pl.mode = PlaylistMode.fm pl.next() # first emit pl.fm_add(song) # assume current_song is song pl._current_song = song pl.next() # second emit mock_emit.assert_has_calls([ mock.call(), mock.call(), ])
def test_change_song(app_mock, mocker, song, song1): mocker.patch.object(Player, 'play') pl = Playlist(app_mock) pl.add(song) pl._current_song = song player = Player(pl) with mock.patch.object(Playlist, 'current_song', new_callable=mock.PropertyMock) as mock_s: mock_s.return_value = song # return current song player.play_song(song1) pl.next() assert pl.current_song == song
async def test_playlist_resumed_from_eof_reached(app_mock, song, mocker, mock_a_set_cursong): mock_set_current_song = mocker.patch.object(Playlist, 'set_current_song') pl = Playlist(app_mock) def feed_playlist(): pl.fm_add(song) pl.next() pl.eof_reached.connect(feed_playlist) pl.mode = PlaylistMode.fm pl.next() mock_set_current_song.assert_has_calls([mock.call(song)])
async def test_playlist_resumed_from_eof_reached(app_mock, song, mocker): mock_current_song = mocker.patch.object(Playlist, 'current_song') mock_set = mocker.MagicMock() mock_current_song.__get__ = mocker.MagicMock(return_value=None) mock_current_song.__set__ = mock_set pl = Playlist(app_mock) def feed_playlist(): pl.fm_add(song) pl.next() pl.eof_reached.connect(feed_playlist) pl.mode = PlaylistMode.fm pl.next() mock_set.assert_has_calls([mock.call(pl, song)])
async def test_playlist_eof_reached(app_mock, song, mocker, mock_a_set_cursong): mock_emit = mocker.patch.object(Signal, 'emit') pl = Playlist(app_mock) pl.mode = PlaylistMode.fm pl.next() # first emit pl.fm_add(song) # assume current_song is song pl._current_song = song pl.next() # second emit mock_emit.assert_has_calls([ mock.call(PlaybackMode.sequential), mock.call(PlaylistMode.fm), mock.call(), mock.call(0, 1), # songs_added mock.call() ])
def test_playlist_next_should_call_set_current_song(app_mock, mocker, song): mock_set_current_song = mocker.patch.object(Playlist, 'set_current_song') pl = Playlist(app_mock) pl.add(song) task = pl.next() # Next method should call set_current_song and return an asyncio task. # Since it is complex to mock and return a asyncio.Task, we do not # check the type of task object. assert task is not None assert mock_set_current_song.called