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()
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)
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")
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
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")
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()
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()
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()
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
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
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
def test_registering_of_spotify_track_by_tuple(): library = playbox.AudioLibrary() library.registerSpotifyAudio("12345", "spotify:track:1zB4vmk8tFRmM9UULNzbLB") assert library.getAudio("12345") == "spotify:track:1zB4vmk8tFRmM9UULNzbLB"
def test_register_spotify_album_by_tuple(): library = playbox.AudioLibrary() library.registerSpotifyAudio("12345", "spotify:album:0IknFOJldq3e8NUXKrYrIO") assert library.getAudio("12345") == "spotify:album:0IknFOJldq3e8NUXKrYrIO"
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"
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"
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://")
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")
def test_malformed_spotify_url_raises_exception(): library = playbox.AudioLibrary() with pytest.raises(Exception): library.registerSpotifyAudio( "12345", "https://open.anyweb.com/track/1zB4vmk8tFRmM9UULNzbLB")
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")
def test_player_connection_to_mpd(mock_mpd_connect): player = playbox.Player(playbox.AudioLibrary()) player.connect() mock_mpd_connect.assert_called_once()