def test_signals_when_about_menu_item_clicked(driver): about_signal = ValueMatcherProbe("about") _ = show_main_window(on_about=lambda pressed: about_signal.received()) driver.about() driver.check(about_signal)
def test_signals_when_artwork_selected(driver): album = make_album() signal = ValueMatcherProbe("select artwork") _ = show_page(album, on_select_artwork=lambda: signal.received()) driver.add_artwork() driver.check(signal)
def test_signals_when_settings_menu_item_clicked(driver): window_ = show_main_window() change_settings_signal = ValueMatcherProbe("change settings") window_.on_settings(lambda checked: change_settings_signal.received()) driver.settings() driver.check(change_settings_signal)
def test_signals_select_album_destination(tmpdir, driver): destination = tmpdir.strpath select_album_destination_signal = ValueMatcherProbe("select destination", equal_to(destination)) _ = show_dialog(on_select=lambda dest: select_album_destination_signal.received(os.path.abspath(dest))) driver.select_destination(destination) driver.check(select_album_destination_signal)
def test_signals_save_as_destination(tmpdir, driver): destination = tmpdir.join("album.csv").strpath save_as_signal = ValueMatcherProbe("save as", destination) _ = show_dialog(on_select=lambda dest: save_as_signal.received(os.path.abspath(dest))) driver.save_as(destination) driver.check(save_as_signal)
def test_signals_when_project_selected(driver): project_selected_signal = ValueMatcherProbe("project file selected", resources.path("album.tgit")) _ = show_dialog(on_select=lambda dest: project_selected_signal.received( os.path.abspath(dest))) driver.load(resources.path("album.tgit")) driver.check(project_selected_signal)
def test_adds_extension_when_none_was_specified(tmpdir, driver): destination = tmpdir.join("album").strpath save_as_signal = ValueMatcherProbe("save as", destination + ".csv") _ = show_dialog(on_select=lambda dest: save_as_signal.received(os.path.abspath(dest)), default_suffix="csv") driver.save_as(destination) driver.check(save_as_signal)
def test_asks_for_confirmation_when_project_file_already_exists(driver): project_exists_query = ValueMatcherProbe("check project exists", ("Honeycomb", "Documents")) _ = show_page( project_exists=lambda *args: project_exists_query.received(args)) driver.create_project("Honeycomb", "Documents") driver.check(project_exists_query)
def test_signals_selected_file(driver): mp3 = resources.path("audio", "Rolling in the Deep.mp3") track_selection_signal = ValueMatcherProbe("track selection", mp3) _ = show_dialog(on_select_file=lambda sel: track_selection_signal.received( os.path.abspath(sel))) driver.select_tracks(mp3) driver.check(track_selection_signal)
def test_signals_when_add_files_menu_item_clicked(driver): window_ = show_main_window(select_tracks=lambda type_, on_select: on_select("track1." + type_, "track2." + type_)) project = build.album(of_type=Album.Type.FLAC) add_files_signal = ValueMatcherProbe("add files", contains(project, ("track1.flac", "track2.flac"))) window_.on_add_files(lambda _, *files: add_files_signal.received([project, files])) window_.display_project_screen(project) driver.add_tracks_to_project(from_menu=True) driver.check(add_files_signal)
def test_asks_for_confirmation_before_closing_project(driver): project = make_album() confirm_close_query = ValueMatcherProbe("confirm close") window_ = show_main_window(confirm_close=lambda **_: confirm_close_query.received(), on_close_project=ignore) window_.display_project_screen(project) driver.close_project() driver.check(confirm_close_query)
def test_makes_add_tracks_request_when_add_button_clicked(driver): album = make_album() page = show_track_list_tab(album, select_tracks=lambda on_select: on_select("track1", "track2", "track3")) add_tracks_signal = ValueMatcherProbe("add tracks", contains("track1", "track2", "track3")) page.on_add_tracks(lambda *track_files: add_tracks_signal.received(track_files)) driver.add_tracks() driver.check(add_tracks_signal)
def test_signals_project_creation_cancellation(driver, using_shortcut): cancel_creation_signal = ValueMatcherProbe("cancel creation") page = show_page() page.on_cancel_creation(lambda: cancel_creation_signal.received()) driver.cancel_creation("Honeycomb", "Documents", using_shortcut=using_shortcut) driver.check(cancel_creation_signal)
def test_signals_save_as_destination(tmpdir, driver): destination = tmpdir.join("album.csv").strpath save_as_signal = ValueMatcherProbe("save as", destination) _ = show_dialog( on_select=lambda dest: save_as_signal.received(os.path.abspath(dest))) driver.save_as(destination) driver.check(save_as_signal)
def test_creates_project_if_confirmed(driver): create_project_signal = ValueMatcherProbe( "new project", ("flac", "Honeycomb", "Documents", "track.flac")) _ = show_page( of_type="flac", project_exists=yes, on_create_project=lambda *args: create_project_signal.received(args)) driver.create_project("Honeycomb", "Documents", "track.flac") driver.check(create_project_signal)
def test_signals_when_export_menu_item_clicked(driver): window_ = show_main_window(select_export_destination=lambda on_select, name: on_select(name + ".csv")) projet = build.album(release_name="Honeycomb") export_signal = ValueMatcherProbe("export", contains(projet, "Honeycomb.csv")) window_.on_export( lambda current_projet, destination: export_signal.received([current_projet, destination])) window_.display_project_screen(projet) driver.export() driver.check(export_signal)
def test_signals_when_add_folder_menu_item_clicked(driver): window_ = show_main_window(select_tracks_in_folder=lambda type_, on_select: on_select("track1." + type_, "track2." + type_)) projet = build.album() add_folder_signal = ValueMatcherProbe("add folder", contains(projet, ("track1.flac", "track2.flac"))) window_.on_add_files(lambda current_projet, *file: add_folder_signal.received([current_projet, file])) window_.display_project_screen(projet) driver.add_tracks_in_folder() driver.check(add_folder_signal)
def test_adds_extension_when_none_was_specified(tmpdir, driver): destination = tmpdir.join("album").strpath save_as_signal = ValueMatcherProbe("save as", destination + ".csv") _ = show_dialog( on_select=lambda dest: save_as_signal.received(os.path.abspath(dest)), default_suffix="csv") driver.save_as(destination) driver.check(save_as_signal)
def test_asks_for_confirmation_before_closing_project(driver): project = make_album() confirm_close_query = ValueMatcherProbe("confirm close") window_ = show_main_window( confirm_close=lambda **_: confirm_close_query.received(), on_close_project=ignore) window_.display_project_screen(project) driver.close_project() driver.check(confirm_close_query)
def test_signals_when_add_files_menu_item_clicked(driver): window_ = show_main_window(select_tracks=lambda type_, on_select: on_select("track1." + type_, "track2." + type_)) project = build.album(of_type=Album.Type.FLAC) add_files_signal = ValueMatcherProbe( "add files", contains(project, ("track1.flac", "track2.flac"))) window_.on_add_files( lambda _, *files: add_files_signal.received([project, files])) window_.display_project_screen(project) driver.add_tracks_to_project(from_menu=True) driver.check(add_files_signal)
def test_makes_add_tracks_request_when_add_button_clicked(driver): album = make_album() page = show_track_list_tab(album, select_tracks=lambda on_select: on_select( "track1", "track2", "track3")) add_tracks_signal = ValueMatcherProbe( "add tracks", contains("track1", "track2", "track3")) page.on_add_tracks( lambda *track_files: add_tracks_signal.received(track_files)) driver.add_tracks() driver.check(add_tracks_signal)
def test_alternatively_selects_files_of_given_type_in_folder(driver): mp3s = (resources.path("audio", "Rolling in the Deep.mp3"), resources.path("audio", "Set Fire to the Rain.mp3"), resources.path("audio", "Someone Like You.mp3")) tracks_selection_signal = ValueMatcherProbe("track(s) selection", contains_inanyorder(*mp3s)) _ = show_dialog(on_select_files_in_folder=lambda *sel: tracks_selection_signal.received(_abs_path(sel))) driver.select_tracks_in_folder(resources.path("audio")) driver.check(tracks_selection_signal)
def test_signals_when_project_selected(driver): project_selected_signal = ValueMatcherProbe("project file selected", resources.path("album.tgit")) _ = show_dialog(on_select=lambda dest: project_selected_signal.received(os.path.abspath(dest))) driver.load(resources.path("album.tgit")) driver.check(project_selected_signal)
def test_signals_when_artwork_selected(driver, artwork_selection): signal = ValueMatcherProbe("file selected", resources.path("front-cover.jpg")) _ = show_dialog(artwork_selection, lambda destination: signal.received(os.path.abspath(destination))) driver.select(resources.path("front-cover.jpg")) driver.check(signal)
def test_clicks_button_with_the_mouse(button, driver): button_pressed_signal = ValueMatcherProbe("button press") button.clicked.connect(lambda: button_pressed_signal.received()) driver.click() driver.check(button_pressed_signal)