Esempio n. 1
0
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(),
    ])
Esempio n. 2
0
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
Esempio n. 3
0
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)])
Esempio n. 4
0
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)])
Esempio n. 5
0
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()
    ])
Esempio n. 6
0
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