Example #1
0
def test_pause_token_calls_mpc_pause(mock_mpd_pause):
    library = playbox.AudioLibrary()
    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.registerPause("99999")
    player.handleToken("99999")
    mock_mpd_pause.assert_called_once()
Example #2
0
def test_saving_csv_file_creates_directory():
    library = playbox.AudioLibrary()

    file_path = os.path.join(tempfile.mkdtemp(), "not-existing")
    assert not os.path.exists(file_path)

    library.saveToCsv(file_path)
    assert os.path.exists(file_path)
Example #3
0
def test_audio_retrival_by_number_if_number_is_present():
    # set up
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/my/audio/foo.ogg")

    uri = library.getAudio("12345")
    assert uri == "file:///my/audio/foo.ogg"
    assert library.hasAudio("12345")
Example #4
0
def test_multiple_calls_to_play_with_different_token_result_in_two_play_calls_to_mpd(
        mock_mpd_clear, mock_mpd_next, mock_mpd_add, mock_mpd_play):
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/some/file/foo.ogg")
    library.registerAudio("45678", "/some/other/file/foo.ogg")
    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.handleToken("12345")
    player.handleToken("45678")
    assert mock_mpd_play.call_count == 2
Example #5
0
def test_reading_from_csv_file():
    library = playbox.AudioLibrary()
    out_file = tempfile.NamedTemporaryFile()
    f = open(out_file.name, 'w')
    f.writelines(
        ["12345;file:///my/audio/foo.ogg\n", "56789;spotify:track:abcdef\n"])
    f.close()

    library.readFromCsv(out_file.name)
    assert "file:///my/audio/foo.ogg" == library.getAudio("12345")
    assert "spotify:track:abcdef" == library.getAudio("56789")
Example #6
0
def test_player_plays_back_file_from_library(mock_mpd_clear, mock_mpd_next,
                                             mock_mpd_add, mock_mpd_play):
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/some/file/foo.ogg")
    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.handleToken("12345")
    mock_mpd_clear.assert_called_once()
    mock_mpd_next.assert_called_once()
    mock_mpd_add.assert_called_once()
    mock_mpd_play.assert_called_once()
Example #7
0
def test_multiple_calls_to_play_with_same_token_result_in_only_one_play_call_to_mpd(
        mock_mpd_play, mock_mpd_add, mock_mpd_next, mock_mpd_clear):
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/some/file/foo.ogg")
    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.handleToken("12345")
    player.handleToken("12345")
    mock_mpd_clear.assert_called_once()
    mock_mpd_next.assert_called_once()
    mock_mpd_add.assert_called_once()
    mock_mpd_play.assert_called_once()
Example #8
0
def test_player_does_not_play_back_unregistered_file(mock_mpd_clear,
                                                     mock_mpd_next,
                                                     mock_mpd_add,
                                                     mock_mpd_play):
    library = playbox.AudioLibrary()
    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.handleToken("12345")
    mock_mpd_clear.assert_not_called()
    mock_mpd_next.assert_not_called()
    mock_mpd_add.assert_not_called()
    mock_mpd_play.assert_not_called()
Example #9
0
def test_saving_to_file():
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/my/audio/foo.ogg")
    library.registerSpotifyAudio("56789", "spotify:track:abcdef")
    out_file = tempfile.NamedTemporaryFile()

    library.saveToCsv(out_file.name)

    f = open(out_file.name, 'r')
    file_contents = f.readlines()

    f.close()
    assert "12345;file:///my/audio/foo.ogg\n" in file_contents
    assert "56789;spotify:track:abcdef\n" in file_contents
Example #10
0
def test_to_play_with_same_token_result_in_two_play_calls_to_mpd_when_paused(
        mock_mpd_pause, mock_mpd_play, mock_mpd_add, mock_mpd_next,
        mock_mpd_clear):
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/some/file/foo.ogg")

    player = playbox.Player(library)
    player.registerPause("99999")
    player.connect = MagicMock(return_value=True)
    player.handleToken("12345")
    player.handleToken("99999")
    player.handleToken("12345")
    mock_mpd_pause.assert_called_once()
    assert mock_mpd_play.call_count == 2
Example #11
0
def test_multiple_calls_to_play_with_same_token_result_in_two_plays_if_stop_was_called_in_between_call_to_mpd(
        mock_mpd_clear, mock_mpd_next, mock_mpd_add, mock_mpd_play,
        mock_mpd_stop):
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/some/file/foo.ogg")

    player = playbox.Player(library)
    player.connect = MagicMock(return_value=True)
    player.registerStop("99999")
    player.handleToken("12345")
    player.handleToken("99999")
    player.handleToken("12345")
    mock_mpd_clear.call_count = 2
    mock_mpd_next.call_count = 2
    mock_mpd_add.call_count = 2
    mock_mpd_stop.call_count = 2
    assert mock_mpd_play.call_count == 2
Example #12
0
def test_registering_of_spotify_track_by_tuple():
    library = playbox.AudioLibrary()
    library.registerSpotifyAudio("12345",
                                 "spotify:track:1zB4vmk8tFRmM9UULNzbLB")

    assert library.getAudio("12345") == "spotify:track:1zB4vmk8tFRmM9UULNzbLB"
Example #13
0
def test_register_spotify_album_by_tuple():
    library = playbox.AudioLibrary()
    library.registerSpotifyAudio("12345",
                                 "spotify:album:0IknFOJldq3e8NUXKrYrIO")

    assert library.getAudio("12345") == "spotify:album:0IknFOJldq3e8NUXKrYrIO"
Example #14
0
def test_register_spotify_album_by_url():
    library = playbox.AudioLibrary()
    library.registerSpotifyAudio(
        "12345", "https://open.spotify.com/album/0IknFOJldq3e8NUXKrYrIO")

    assert library.getAudio("12345") == "spotify:album:0IknFOJldq3e8NUXKrYrIO"
Example #15
0
def test_registering_of_spotify_track_by_url():
    library = playbox.AudioLibrary()
    library.registerSpotifyAudio(
        "12345", "https://open.spotify.com/track/1zB4vmk8tFRmM9UULNzbLB")

    assert library.getAudio("12345") == "spotify:track:1zB4vmk8tFRmM9UULNzbLB"
Example #16
0
def test_if_audio_added_as_relative_path_is_converted_to_uri():
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "./somefile.ogg")

    assert library.getAudio("12345").startswith("file://")
Example #17
0
def test_if_audio_added_as_path_then_is_converted_to_uri():
    library = playbox.AudioLibrary()
    library.registerAudio("12345", "/my/audio/foo.ogg")

    assert "file:///my/audio/foo.ogg" == library.getAudio("12345")
Example #18
0
def test_malformed_spotify_url_raises_exception():
    library = playbox.AudioLibrary()
    with pytest.raises(Exception):
        library.registerSpotifyAudio(
            "12345", "https://open.anyweb.com/track/1zB4vmk8tFRmM9UULNzbLB")
Example #19
0
def test_audio_retrieval_by_number_if_number_is_not_present():
    library = playbox.AudioLibrary()
    assert not library.hasAudio("12345")
    with pytest.raises(KeyError):
        library.getAudio("12345")
Example #20
0
def test_player_connection_to_mpd(mock_mpd_connect):
    player = playbox.Player(playbox.AudioLibrary())
    player.connect()
    mock_mpd_connect.assert_called_once()