Exemple #1
0
async def test_playlist_fm_mode_play_previous(app_mock, song, song1, mocker):
    pl = Playlist(app_mock)
    pl.mode = PlaylistMode.fm
    pl.fm_add(song1)
    pl.fm_add(song)
    pl._current_song = song
    pl.current_song = song1  # should not exit fm mode
    assert pl.mode is PlaylistMode.fm
Exemple #2
0
def pl(app_mock, song, song1):
    """
    pl: [song, song1], current_song: song
    """
    playlist = Playlist(app_mock)
    playlist.add(song)
    playlist.add(song1)
    playlist._current_song = song
    return playlist
Exemple #3
0
async def test_playlist_fm_mode_play_next(app_mock, song, song1, mocker):
    mocker.patch.object(Playlist, 'a_set_current_song')
    pl = Playlist(app_mock)
    pl.mode = PlaylistMode.fm
    pl.fm_add(song1)
    pl.fm_add(song)
    pl._current_song = song1
    pl.current_song = song   # should not exit fm mode
    assert pl.mode is PlaylistMode.fm
Exemple #4
0
async def test_playlist_fm_mode_play_next(app_mock, song, song1,
                                          mock_a_set_cursong):
    pl = Playlist(app_mock)
    pl.mode = PlaylistMode.fm
    pl.fm_add(song1)
    pl.fm_add(song)
    pl._current_song = song1
    pl.current_song = song   # should not exit fm mode
    assert pl.mode is PlaylistMode.fm
Exemple #5
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(),
    ])
Exemple #6
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
Exemple #7
0
async def test_play_next_bad_song(app_mock, song, song1, mocker):
    """
    Prepare media for song raises unknown error, the song should
    be marked as bad.
    """
    pl = Playlist(app_mock)
    mocker.patch.object(pl, '_prepare_media', side_effect=Exception())
    mock_mark_as_bad = mocker.patch.object(pl, 'mark_as_bad')
    mock_next = mocker.patch.object(pl, 'next')
    pl.add(song)
    pl.add(song1)
    pl._current_song = song
    await pl.a_set_current_song(pl.next_song)
    assert mock_mark_as_bad.called
    assert mock_next.called
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()
    ])