Warning

This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

galaxy_test.selenium package

Submodules

galaxy_test.selenium.framework module

Basis for Selenium test framework.

galaxy_test.selenium.framework.managed_history(f)[source]

Ensure a Selenium test has a distinct, named history.

Cleanup the history after the job is complete as well unless GALAXY_TEST_NO_CLEANUP is set in the environment.

galaxy_test.selenium.framework.dump_test_information(self, name_prefix)[source]
galaxy_test.selenium.framework.selenium_test(f)[source]
class galaxy_test.selenium.framework.TestSnapshot(driver, index, description)[source]

Bases: object

__init__(driver, index, description)[source]
write_to_error_directory(write_file_func)[source]
class galaxy_test.selenium.framework.TestWithSeleniumMixin[source]

Bases: galaxy.selenium.navigates_galaxy.NavigatesGalaxy, galaxy_test.base.api.UsesApiTestCaseMixin

framework_tool_and_types = True
ensure_registered = False
requires_admin = False
setup_selenium()[source]
setup_with_driver()[source]

Override point that allows setting up data using self.driver and Selenium connection.

Overriding this instead of setUp will ensure debug data such as screenshots and stack traces are dumped if there are problems with the setup and it will be re-ran on test retries.

tear_down_selenium()[source]
snapshot(description)[source]

Create a debug snapshot (DOM, screenshot, etc…) that is written out on tool failure.

This information will be automatically written to a per-test directory created for all failed tests.

screenshot(label)[source]

If GALAXY_TEST_SCREENSHOTS_DIRECTORY is set create a screenshot there named <label>.png.

Unlike the above “snapshot” feature, this will be written out regardless and not in a per-test directory. The above method is used for debugging failures within a specific test. This method if more for creating a set of images to augment automated testing with manual human inspection after a test or test suite has executed.

get_download_path()[source]

Returns default download path

api_interactor_for_logged_in_user()[source]
write_screenshot_directory_file(label, content)[source]
reset_driver_and_session()[source]
setup_driver_and_session()[source]
login()[source]
tear_down_driver()[source]
default_web_host = '127.0.0.1'
timeout_multiplier
build_url(url, for_selenium=True)[source]
assert_initial_history_panel_state_correct()[source]
admin_login()[source]
dataset_populator
dataset_collection_populator
workflow_populator
workflow_upload_yaml_with_random_name(content, **kwds)[source]
ensure_visualization_available(hid, visualization_name)[source]

Skip or fail a test if visualization for file doesn’t appear.

Precondition: viz menu has been opened with history_panel_item_click_visualization_menu.

class galaxy_test.selenium.framework.SeleniumTestCase(methodName='runTest')[source]

Bases: galaxy_test.base.testcase.FunctionalTestCase, galaxy_test.selenium.framework.TestWithSeleniumMixin

galaxy_driver_class

alias of galaxy_test.driver.driver_util.GalaxyTestDriver

setUp()[source]
tearDown()[source]
class galaxy_test.selenium.framework.SharedStateSeleniumTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

This describes a class Selenium tests that setup class state for all tests.

This is a bit hacky because we are simulating class level initialization with instance level methods. The problem is that super.setUp() works at instance level. It might be worth considering having two variants of SeleniumTestCase - one that initializes with the class and the other that initializes with the instance but all the helpers are instance helpers.

shared_state_initialized = False
shared_state_in_error = False
setup_with_driver()[source]
setup_shared_state()[source]

Override this to setup shared data for tests that gets initialized only once.

class galaxy_test.selenium.framework.UsesHistoryItemAssertions[source]

Bases: object

assert_item_peek_includes(hid, expected)[source]
assert_item_info_includes(hid, expected)[source]
assert_item_dbkey_displayed_as(hid, dbkey)[source]
assert_item_summary_includes(hid, expected_text)[source]
assert_item_name(hid, expected_name)[source]
assert_item_hid_text(hid)[source]
galaxy_test.selenium.framework.default_web_host_for_selenium_tests()[source]
galaxy_test.selenium.framework.get_driver()[source]
galaxy_test.selenium.framework.headless_selenium()[source]
galaxy_test.selenium.framework.use_virtual_display()[source]
galaxy_test.selenium.framework.get_local_driver()[source]
galaxy_test.selenium.framework.get_remote_driver()[source]
class galaxy_test.selenium.framework.SeleniumSessionGetPostMixin[source]

Bases: object

Mixin for adapting Galaxy testing populators helpers to Selenium session backed bioblend.

class galaxy_test.selenium.framework.SeleniumSessionDatasetPopulator(selenium_test_case)[source]

Bases: galaxy_test.base.populators.BaseDatasetPopulator, galaxy_test.selenium.framework.SeleniumSessionGetPostMixin

Implementation of BaseDatasetPopulator backed by bioblend.

__init__(selenium_test_case)[source]

Construct a dataset populator from a bioblend GalaxyInstance.

class galaxy_test.selenium.framework.SeleniumSessionDatasetCollectionPopulator(selenium_test_case)[source]

Bases: galaxy_test.base.populators.BaseDatasetCollectionPopulator, galaxy_test.selenium.framework.SeleniumSessionGetPostMixin

Implementation of BaseDatasetCollectionPopulator backed by bioblend.

__init__(selenium_test_case)[source]

Construct a dataset collection populator from a bioblend GalaxyInstance.

class galaxy_test.selenium.framework.SeleniumSessionWorkflowPopulator(selenium_test_case)[source]

Bases: galaxy_test.base.populators.BaseWorkflowPopulator, galaxy_test.selenium.framework.SeleniumSessionGetPostMixin, gxformat2.interface.ImporterGalaxyInterface

Implementation of BaseWorkflowPopulator backed by bioblend.

__init__(selenium_test_case)[source]

Construct a workflow populator from a bioblend GalaxyInstance.

import_workflow(workflow, **kwds)[source]
upload_yaml_workflow(has_yaml, **kwds)[source]

galaxy_test.selenium.test_admin_app module

class galaxy_test.selenium.test_admin_app.AdminAppTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

requires_admin = True
test_admin_toolshed()[source]

This tests installing a repository, checking for upgrades, and uninstalling.

A repository named a_selenium_test_repo has been created for this test, owned by devteam@galaxyproject.org. The repository contains a tool with two versions, and the oldest version gets installed so that there will be an upgrade available on the ‘Installed Only’ view. Unfortunately, since this test relies on the presence of the toolshed server, in some cases it will fail even if the galaxy code is correct, necessitating the use of the @flakey decorator.

test_admin_dependencies_display()[source]
test_admin_jobs_display()[source]
test_admin_server_display()[source]
test_admin_user_display()[source]
test_admin_data_manager()[source]

galaxy_test.selenium.test_anon_history module

class galaxy_test.selenium.test_anon_history.AnonymousHistoriesTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_anon_history_landing()[source]
test_anon_history_upload()[source]
test_anon_history_after_registration()[source]
test_clean_anon_history_after_logout()[source]

galaxy_test.selenium.test_change_password module

class galaxy_test.selenium.test_change_password.ChangePasswordTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_change_password()[source]
test_new_password_password()[source]
test_no_password_confirmation()[source]
test_currect_password_incorrect()[source]
test_new_password_short()[source]
test_new_password_same_password()[source]
register_and_change_password()[source]
fill_input_fields(current, password, confirm)[source]

galaxy_test.selenium.test_collection_builders module

class galaxy_test.selenium.test_collection_builders.CollectionBuildersTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_build_list_simple()[source]
test_build_list_and_hide_items()[source]
test_build_pair_simple()[source]
test_build_paired_list_simple()[source]
test_build_paired_list_hide_original()[source]
test_build_simple_list_via_rules()[source]

galaxy_test.selenium.test_custom_builds module

class galaxy_test.selenium.test_custom_builds.CustomBuildsTestcase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SharedStateSeleniumTestCase

test_build_add()[source]
test_build_delete()[source]
assert_custom_builds_in_grid(expected_builds, present=True)[source]
add_custom_build(build_name, build_key)[source]
delete_custom_build(build_name)[source]
get_custom_builds()[source]
navigate_to_custom_builds_page()[source]
setup_shared_state()[source]

galaxy_test.selenium.test_histories_list module

class galaxy_test.selenium.test_histories_list.SavedHistoriesTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SharedStateSeleniumTestCase

test_histories_list()[source]
test_history_switch()[source]
test_history_view()[source]
test_history_publish()[source]
test_rename_history()[source]
test_delete_and_undelete_history()[source]
test_permanently_delete_history()[source]
test_delete_and_undelete_multiple_histories()[source]
test_sort_by_name()[source]
test_tags()[source]
assert_grid_histories_are(expected_histories, sort_matters=True)[source]
assert_histories_in_grid(expected_histories, present=True)[source]
get_histories()[source]
set_filter(selector, value)[source]
unset_filter(filter_key, filter_value)[source]
navigate_to_histories_page()[source]
setup_shared_state()[source]
create_history(name)[source]
select_filter(filter_key, filter_value)[source]
get_history_tags_cell(history_name)[source]
check_histories(histories)[source]

galaxy_test.selenium.test_history_copy_elements module

class galaxy_test.selenium.test_history_copy_elements.HistoryCopyElementsTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_copy_hdca()[source]

galaxy_test.selenium.test_history_dataset_state module

class galaxy_test.selenium.test_history_dataset_state.HistoryDatasetStateTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase, galaxy_test.selenium.framework.UsesHistoryItemAssertions

hid = 1
test_dataset_state(hid=1)[source]
test_dataset_change_dbkey(hid=1)[source]

galaxy_test.selenium.test_history_multi_view module

class galaxy_test.selenium.test_history_multi_view.HistoryMultiViewTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_create_new_old_slides_next()[source]
test_list_list_display()[source]
test_list_list_list_display()[source]
test_copy_history()[source]
test_delete_history()[source]
test_purge_history()[source]
test_switch_history()[source]
  1. Load the multi history view. There should be a selector for the button to create a new history.
  2. Create a new history. This should automatically switch to the newly created history.
  3. Switch back to the original history. A button should appear on the old, previously created history that allows switching back to that one, and the history ID should now match the ID of the history with which we started.
assert_history(history_id, histories_number=1, should_exist=True)[source]
copy_history(history_id)[source]
prepare_multi_history_view(collection_populator_method)[source]

galaxy_test.selenium.test_history_options module

class galaxy_test.selenium.test_history_options.HistoryOptionsTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_options()[source]

galaxy_test.selenium.test_history_panel module

class galaxy_test.selenium.test_history_panel.HistoryPanelTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_history_panel_landing_state()[source]
test_history_panel_rename()[source]
test_history_rename_confirm_with_click()[source]
test_history_rename_cancel_with_escape()[source]
test_history_tags_and_annotations_buttons()[source]
test_history_panel_annotations_change()[source]
test_history_panel_tags_change()[source]
test_refresh_preserves_state()[source]

galaxy_test.selenium.test_history_panel_collections module

class galaxy_test.selenium.test_history_panel_collections.HistoryPanelCollectionsTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_mapping_collection_states_terminal()[source]
test_mapping_collection_states_running()[source]
test_output_collection_states_terminal()[source]
test_output_collection_states_running()[source]
test_collection_operations()[source]
test_name_tags_display()[source]
test_paired_display()[source]
test_list_display()[source]
test_list_paired_display()[source]
test_list_list_display()[source]
test_limiting_collection_rendering()[source]

galaxy_test.selenium.test_history_panel_pagination module

class galaxy_test.selenium.test_history_panel_pagination.HistoryPanelPaginationTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_pagination()[source]

galaxy_test.selenium.test_history_sharing module

class galaxy_test.selenium.test_history_sharing.HistorySharingTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_sharing_valid()[source]
test_sharing_valid_by_id()[source]
test_unsharing()[source]
test_unshared_history_inaccessible()[source]
test_sharing_with_invalid_user()[source]
test_sharing_with_self()[source]
setup_two_users_with_one_shared_history(share_by_id=False)[source]
navigate_to_history_share_page()[source]
navigate_to_history_user_share_page()[source]
share_history_with_user(user_id=None, user_email=None, assert_valid=False, screenshot=False)[source]

Share the current history with a target user by ID or email.

user_email will be used to enter in the share form unless user_id is also specified. The user_email however is always used to check the result if assert_valid is True.

galaxy_test.selenium.test_jupyter module

class galaxy_test.selenium.test_jupyter.JupyterTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_jupyter_launch()[source]
test_jupyter_interaction()[source]

galaxy_test.selenium.test_library_contents module

class galaxy_test.selenium.test_library_contents.LibraryContentsTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

requires_admin = True
test_sub_folder()[source]
test_import_dataset_from_history()[source]
download_dataset_from_library()[source]
test_delete_dataset()[source]
test_import_dataset_from_path()[source]
test_show_details()[source]

galaxy_test.selenium.test_library_landing module

class galaxy_test.selenium.test_library_landing.LibraryLandingTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

requires_admin = True
setup_with_driver()[source]
test_create_new_close()[source]
test_create_new()[source]
test_rename()[source]
test_sorting()[source]

galaxy_test.selenium.test_library_to_collections module

galaxy_test.selenium.test_login module

class galaxy_test.selenium.test_login.LoginTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_logging_in()[source]
test_invalid_logins()[source]
test_invalid_passwords()[source]
test_wrong_password()[source]

galaxy_test.selenium.test_navigates_galaxy module

class galaxy_test.selenium.test_navigates_galaxy.NavigatesGalaxySeleniumTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

Test the Selenium test framework itself.

Unlike the others test cases in this module, this test case tests the test framework itself (for when that makes sense, mostly corner cases).

test_click_error()[source]

galaxy_test.selenium.test_pages module

class galaxy_test.selenium.test_pages.PagesTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_simple_page_creation_edit_and_view()[source]
navigate_to_pages()[source]

galaxy_test.selenium.test_personal_information module

class galaxy_test.selenium.test_personal_information.ManageInformationTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_api_key()[source]

This test views and resets the API key. In automated testing scenarios, this means the initial API key will be None, which renders as ‘Not available.’

test_change_email()[source]
test_public_name()[source]
test_user_address()[source]
navigate_to_manage_information()[source]
clear_input_field_and_write(element, new_input_text)[source]
get_address_input_field(address_form, input_field_label)[source]

galaxy_test.selenium.test_published_histories_grid module

class galaxy_test.selenium.test_published_histories_grid.HistoryGridTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SharedStateSeleniumTestCase

test_history_grid_histories()[source]
test_history_grid_search_standard()[source]
test_history_grid_search_advanced()[source]
test_history_grid_sort_by_name()[source]
test_history_grid_sort_by_owner()[source]
test_history_grid_tag_click()[source]
get_histories(sleep=False)[source]
assert_grid_histories_sorted_by_owner()[source]
assert_grid_histories_are(expected_histories, sort_matters=True)[source]
assert_histories_in_grid(expected_histories, present=True)[source]
set_filter(selector, value)[source]
unset_filter(filter_key, filter_value)[source]
setup_shared_state()[source]
create_history(name)[source]
publish_current_history()[source]
navigate_to_published_histories_page()[source]

galaxy_test.selenium.test_registration module

class galaxy_test.selenium.test_registration.RegistrationTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_landing()[source]
test_registration()[source]
test_logout()[source]
test_reregister_email_fails()[source]
test_reregister_username_fails()[source]
test_bad_emails()[source]
test_short_password()[source]
test_password_confirmation()[source]
test_bad_usernames()[source]

galaxy_test.selenium.test_sign_out module

class galaxy_test.selenium.test_sign_out.SignOutTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_sign_out()[source]

galaxy_test.selenium.test_sizzle_loading module

class galaxy_test.selenium.test_sizzle_loading.SizzleLoadingTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_sizzle_loads()[source]

galaxy_test.selenium.test_stock_tours module

class galaxy_test.selenium.test_stock_tours.TestStockToursTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

test_core_galaxy_ui()[source]
test_core_scratchbook()[source]
test_core_history()[source]

galaxy_test.selenium.test_tool_describing_tours module

class galaxy_test.selenium.test_tool_describing_tours.ToolDescribingToursTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

setUp()[source]
test_generate_tour_no_data()[source]

Ensure a tour without data is generated and pops up.

test_generate_tour_with_data()[source]

Ensure a tour with data populates history.

galaxy_test.selenium.test_tool_form module

class galaxy_test.selenium.test_tool_form.ToolFormTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase, galaxy_test.selenium.framework.UsesHistoryItemAssertions

test_run_tool_verify_contents_by_peek()[source]
test_run_tool_verify_dataset_details()[source]
test_verify_dataset_details_tables()[source]
test_rerun()[source]
test_run_data()[source]
test_bibtex_rendering()[source]
class galaxy_test.selenium.test_tool_form.LoggedInToolFormTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_run_apply_rules_1()[source]
test_run_apply_rules_2()[source]
test_run_apply_rules_3()[source]
test_run_apply_rules_4()[source]
test_run_apply_rules_tutorial()[source]

galaxy_test.selenium.test_uploads module

class galaxy_test.selenium.test_uploads.UploadsTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase, galaxy_test.selenium.framework.UsesHistoryItemAssertions

test_upload_simplest()[source]
test_upload_specify_ext()[source]
test_upload_specify_genome()[source]
test_upload_specify_ext_all()[source]
test_upload_specify_genome_all()[source]
test_upload_list()[source]
test_upload_pair()[source]
test_upload_pair_specify_extension()[source]
test_upload_paired_list()[source]
test_rules_example_1_datasets()[source]
test_rules_example_2_list()[source]
test_rules_example_3_list_pairs()[source]
test_rules_example_4_accessions()[source]
test_rules_example_5_matching_collections()[source]
test_rules_example_6_nested_lists()[source]

galaxy_test.selenium.test_workflow_editor module

class galaxy_test.selenium.test_workflow_editor.WorkflowEditorTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_basics()[source]
test_data_input()[source]
test_collection_input()[source]
test_integer_input()[source]
test_non_data_connections()[source]
test_existing_connections()[source]
test_rendering_output_collection_connections()[source]
test_simple_mapping_connections()[source]
test_rendering_simple_nested_workflow()[source]
test_rendering_rules_workflow_1()[source]
test_rendering_rules_workflow_2()[source]
test_save_as()[source]
test_editor_tool_upgrade()[source]
test_editor_tool_upgrade_message()[source]
test_editor_embed_workflow()[source]
test_editor_invalid_tool_state()[source]
test_missing_tools()[source]
test_workflow_bookmarking()[source]
workflow_editor_maximize_center_pane(collapse_left=True, collapse_right=True)[source]
workflow_editor_connect(source, sink, screenshot_partial=None)[source]
assert_connected(source, sink)[source]
assert_not_connected(source, sink)[source]
open_in_workflow_editor(yaml_content)[source]
workflow_editor_source_sink_terminal_ids(source, sink)[source]
workflow_editor_add_input(item_name='data_input')[source]
workflow_editor_destroy_connection(sink)[source]
assert_input_mapped(sink)[source]
assert_input_not_mapped(sink)[source]
workflow_index_open_with_name(name)[source]
workflow_upload_yaml_with_random_name(content)[source]
workflow_create_new(annotation=None, clear_placeholder=False)[source]
assert_has_changes_and_save()[source]
assert_modal_has_text(expected_text)[source]

galaxy_test.selenium.test_workflow_management module

class galaxy_test.selenium.test_workflow_management.WorkflowManagementTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase

ensure_registered = True
test_import_from_url()[source]
test_view()[source]
test_rename()[source]
test_download()[source]
test_tagging()[source]

galaxy_test.selenium.test_workflow_run module

class galaxy_test.selenium.test_workflow_run.WorkflowRunTestCase(methodName='runTest')[source]

Bases: galaxy_test.selenium.framework.SeleniumTestCase, galaxy_test.selenium.framework.UsesHistoryItemAssertions

ensure_registered = True
test_simple_execution()[source]
test_runtime_parameters_simple()[source]
test_subworkflows_simple()[source]
test_subworkflow_runtime_parameters()[source]
test_replacement_parameters()[source]
test_step_parameter_inputs()[source]
test_replacement_parameters_on_subworkflows()[source]
test_execution_with_tool_upgrade()[source]
test_execution_with_multiple_inputs()[source]
test_execution_with_rules()[source]
test_execution_with_custom_invocation_report()[source]
open_in_workflow_run(yaml_content)[source]
workflow_run_setup_inputs(content)[source]
workflow_run_specify_inputs(inputs)[source]
workflow_run_with_name(name)[source]