Пример #1
0
class TestPlaylist(TestCase):
    def setUp(self):
        self.s1 = FakeSongModel()
        self.s2 = FakeSongModel()
        self.playlist = Playlist(app_mock)
        self.playlist.add(self.s1)
        self.playlist.add(self.s2)

    def tearDown(self):
        self.playlist.clear()

    def test_add(self):
        self.playlist.add(self.s1)
        self.assertEqual(len(self.playlist), 2)

    def test_getitem(self):
        self.assertEqual(self.playlist[1], self.s2)

    def test_mark_as_bad(self):
        self.assertEqual(self.playlist.next_song, self.s1)
        self.playlist.mark_as_bad(self.s1)
        self.assertEqual(self.playlist.next_song, self.s2)

    def test_list(self):
        self.assertIn(self.s1, self.playlist.list())
Пример #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
Пример #3
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
Пример #4
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
Пример #5
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