"""Variant of JuypterContextImpl that can also use populators.
This provides an environment separate from test cases that can leaverage
both Selenium for testing Galaxy with a browser and API populators for filling
in fixture data rapidly in the target Galaxy.
"""
from typing import Optional
from galaxy.selenium.context import init as base_init
from galaxy.selenium.jupyter_context import JupyterContextImpl
from galaxy_test.base.api_util import get_admin_api_key
from .framework import GalaxyTestSeleniumContext
[docs]class JupyterTestContextImpl(JupyterContextImpl, GalaxyTestSeleniumContext):
# Reload components interactively to limit number of Python kernel
# restarts needed during test building.
_interactive_components = True
[docs] def __init__(self, from_dict: Optional[dict] = None) -> None:
from_dict = from_dict or {}
super().__init__(from_dict)
self.admin_api_key = from_dict.get("admin_api_key", get_admin_api_key())
self.login_email = from_dict.get("login_email")
self.login_password = from_dict.get("login_password")
[docs] def test_login(self):
self.home()
self.submit_login(self.login_email, self.login_password)
[docs]def init(config=None):
return base_init(config, clazz=JupyterTestContextImpl)