예제 #1
0
def test_empty_playlist_if_cannot_reach_xos_and_no_cache():
    """
    Test that if XOS is unreachable and there is no cache, the playlist is empty.
    """
    media_player = MediaPlayer()
    media_player.download_playlist_from_xos()

    assert not media_player.playlist
예제 #2
0
def test_still_plays_if_cannot_reach_xos():
    """
    Test that a playlist is not empty even if XOS is unreachable.
    """
    copyfile('tests/data/test_cached_playlist.json', 'test_cached_playlist.json')
    media_player = MediaPlayer()
    media_player.download_playlist_from_xos()

    assert len(media_player.playlist) == 9

    os.remove('test_cached_playlist.json')
예제 #3
0
def test_download_playlist_from_xos():
    """
    Test download_playlist_from_xos() returns a valid playlist.
    """

    media_player = MediaPlayer()
    media_player.download_playlist_from_xos()
    playlist = media_player.playlist

    assert len(playlist) == 3
    assert playlist[0]['resource'] == '/data/resources/sample.mp4'
    assert playlist[0]['subtitles'] == '/data/resources/sample.srt'
예제 #4
0
def test_cache_playlist():
    """
    Test that a downloaded playlist is cached.
    """

    media_player = MediaPlayer()
    media_player.download_playlist_from_xos()
    playlist = media_player.playlist

    with open('test_cached_playlist.json', encoding='utf-8') as json_file:
        json_data = json.load(json_file)
        playlist_labels = json_data['playlist_labels']

        expected_resource = os.path.basename(playlist_labels[0]['resource'])
        resource = os.path.basename(playlist[0]['resource'])
        assert resource == expected_resource

        subtitles = os.path.basename(playlist[0]['subtitles'])
        expected_subtitles = os.path.basename(playlist_labels[0]['subtitles'])
        assert subtitles == expected_subtitles

    os.remove('test_cached_playlist.json')