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.
Source code for galaxy_test.base.testcase
import logging
import os
from typing import (
Any,
Optional,
)
from galaxy.tool_util.verify.test_data import TestDataResolver
from galaxy.util.unittest import TestCase
from galaxy_test.base.env import (
setup_keep_outdir,
target_url_parts,
)
log = logging.getLogger(__name__)
[docs]class FunctionalTestCase(TestCase):
"""Base class for tests targetting actual Galaxy servers.
Subclass should override galaxy_driver_class if a Galaxy server
needs to be launched to run the test, this base class assumes a
server is already running.
"""
galaxy_driver_class: Optional[type] = None
host: str
port: Optional[str]
url: str
keepOutdir: str
test_data_resolver: TestDataResolver
_test_driver: Optional[Any]
[docs] def setUp(self) -> None:
self.host, self.port, self.url = target_url_parts()
server_wrapper = (
self._test_driver and self._test_driver.server_wrappers and self._test_driver.server_wrappers[0]
)
if server_wrapper:
self.host = server_wrapper.host
self.port = server_wrapper.port
self.url = f"http://{self.host}:{self.port}{server_wrapper.prefix.rstrip('/')}/"
self.test_data_resolver = TestDataResolver()
self.keepOutdir = setup_keep_outdir()
[docs] @classmethod
def setUpClass(cls):
"""Configure and start Galaxy for a test."""
cls._test_driver = None
if cls.galaxy_driver_class is not None and not os.environ.get("GALAXY_TEST_ENVIRONMENT_CONFIGURED"):
cls._test_driver = cls.galaxy_driver_class()
cls._test_driver.setup(config_object=cls)
[docs] @classmethod
def tearDownClass(cls):
"""Shutdown Galaxy server and cleanup temp directory."""
if cls._test_driver:
cls._test_driver.tear_down()
[docs] def get_filename(self, filename: str) -> str:
# No longer used by tool tests - drop if isn't used else where.
return self.test_data_resolver.get_filename(filename)