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.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)