66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
import sys
|
|
import types
|
|
from pathlib import Path
|
|
|
|
REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
|
|
TEST_ROOT = REPOSITORY_ROOT / "tests"
|
|
SERVICE_PACKAGE_ROOT = REPOSITORY_ROOT / "services" / "aios-autonomous-release-candidate"
|
|
ACTIVE_RUNTIME_ROOT = REPOSITORY_ROOT / "active-runtime"
|
|
ACTIVE_RUNTIME_APP = ACTIVE_RUNTIME_ROOT / "app"
|
|
|
|
for path in (TEST_ROOT, SERVICE_PACKAGE_ROOT, ACTIVE_RUNTIME_APP):
|
|
value = str(path)
|
|
if value not in sys.path:
|
|
sys.path.insert(0, value)
|
|
|
|
|
|
def load_module(relative: str):
|
|
path = REPOSITORY_ROOT / relative
|
|
spec = importlib.util.spec_from_file_location("v2r1c6_privacy_tools", path)
|
|
if spec is None or spec.loader is None:
|
|
raise RuntimeError("module_load_failed")
|
|
module = importlib.util.module_from_spec(spec)
|
|
sys.modules[spec.name] = module
|
|
spec.loader.exec_module(module)
|
|
return module
|
|
|
|
|
|
def _install_active_runtime_namespace() -> None:
|
|
package = sys.modules.get("active_runtime")
|
|
if package is None:
|
|
package = types.ModuleType("active_runtime")
|
|
package.__path__ = [str(ACTIVE_RUNTIME_ROOT)]
|
|
package.__package__ = "active_runtime"
|
|
sys.modules["active_runtime"] = package
|
|
|
|
app = sys.modules.get("active_runtime.app")
|
|
if app is None:
|
|
app = types.ModuleType("active_runtime.app")
|
|
app.__path__ = [str(ACTIVE_RUNTIME_APP)]
|
|
app.__package__ = "active_runtime"
|
|
sys.modules["active_runtime.app"] = app
|
|
package.app = app
|
|
|
|
|
|
def _install_legacy_test_module(name: str, relative: str) -> None:
|
|
if name in sys.modules:
|
|
return
|
|
path = REPOSITORY_ROOT / relative
|
|
spec = importlib.util.spec_from_file_location(name, path)
|
|
if spec is None or spec.loader is None:
|
|
raise RuntimeError("legacy_test_module_load_failed:" + name)
|
|
module = importlib.util.module_from_spec(spec)
|
|
sys.modules[name] = module
|
|
spec.loader.exec_module(module)
|
|
|
|
|
|
_install_active_runtime_namespace()
|
|
sys.modules.setdefault("conftest", sys.modules[__name__])
|
|
_install_legacy_test_module(
|
|
"test_native_adapter_contracts",
|
|
"tests/autonomous_release/test_native_adapter_contracts.py",
|
|
)
|