Warning
This document is for an old release 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.
Source code for galaxy_test.selenium.test_data_source_tools
import pytest
from selenium.webdriver.common.by import By
from galaxy.util.unittest_utils import skip_if_site_down
from .framework import (
managed_history,
selenium_test,
SeleniumTestCase,
UsesHistoryItemAssertions,
)
[docs]
class TestDataSource(SeleniumTestCase, UsesHistoryItemAssertions):
ensure_registered = True
framework_tool_and_types = True
[docs]
@pytest.mark.skip("Skipping UCSC table direct1 data source test, chromedriver fails captcha")
@selenium_test
@managed_history
@skip_if_site_down("https://genome.ucsc.edu/cgi-bin/hgTables")
def test_ucsc_table_direct1_data_source(self):
self.home()
self.datasource_tool_open("ucsc_table_direct1")
self.screenshot("ucsc_table_browser_first_page")
# only 4mb instead of 10 times that for human by default
self.select_by_value((By.CSS_SELECTOR, "#org"), "Tree shrew")
checkbox = self.wait_for_selector("#checkboxGalaxy")
assert checkbox.get_attribute("checked") == "true"
submit_button = self.wait_for_selector("#hgta_doTopSubmit")
submit_button.click()
self.screenshot("ucsc_table_browser_second_page")
self.wait_for_selector("#hgta_doGalaxyQuery").click()
# make sure we're back at Galaxy before we use the current session cookie to monitor the new hda.
# It doesn't seem to me this should be needed but we're getting occasional failures about inaccessible
# history I cannot explain otherwise. -John
self.wait_for_masthead()
# Data source tools like UCSC can take longer to process external requests,
# so we allow force refreshes to give the test more time to complete
self.history_panel_wait_for_hid_ok(1, allowed_force_refreshes=2)
# Make sure we're still logged in (xref https://github.com/galaxyproject/galaxy/issues/11374)
self.components.masthead.logged_in_only.wait_for_visible()
[docs]
@selenium_test
@managed_history
def test_tool_runner_redirects_to_spa(self):
"""Data source tools redirect back to the Galaxy SPA after handing off control to the controller.
Regression test for https://github.com/galaxyproject/galaxy/issues/22671: the new tab opened
by an external data source app used to hit `/tool_runner?tool_id=...` and then JS-redirect
back to `/`. After the mako removal the new tab was stranded on a static "ok" page; the
controller now sends a 302 to `/?notification=tool-submitted` and the SPA surfaces a toast.
"""
self.get("tool_runner?tool_id=test_data_source")
# If the redirect is broken we land on a static page with no masthead.
self.wait_for_masthead()
# Confirm the SPA queued a toast from the notification query param.
self.wait_for_selector_visible(".b-toast")
self.screenshot("tool_runner_redirect_toast")