69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
import importlib
|
|
import sys
|
|
from collections.abc import Callable
|
|
from pathlib import Path
|
|
from types import ModuleType
|
|
|
|
import pytest
|
|
|
|
BACKEND_DIR = Path(__file__).resolve().parents[3]
|
|
|
|
if str(BACKEND_DIR) not in sys.path:
|
|
sys.path.insert(0, str(BACKEND_DIR))
|
|
|
|
|
|
def _load_module(module_name: str) -> ModuleType:
|
|
sys.modules.pop(module_name, None)
|
|
sys.modules.pop('cli', None)
|
|
return importlib.import_module(module_name)
|
|
|
|
|
|
@pytest.fixture
|
|
def backend_dir() -> Path:
|
|
return BACKEND_DIR
|
|
|
|
|
|
@pytest.fixture
|
|
def load_module() -> Callable[[str], ModuleType]:
|
|
return _load_module
|
|
|
|
|
|
@pytest.fixture
|
|
def cli_main(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.main')
|
|
|
|
|
|
@pytest.fixture
|
|
def app_run_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.app_run')
|
|
|
|
|
|
@pytest.fixture
|
|
def cache_clear_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.cache_clear')
|
|
|
|
|
|
@pytest.fixture
|
|
def db_upgrade_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.db_upgrade')
|
|
|
|
|
|
@pytest.fixture
|
|
def gen_export_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.gen_export')
|
|
|
|
|
|
@pytest.fixture
|
|
def gen_import_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.gen_import')
|
|
|
|
|
|
@pytest.fixture
|
|
def prod_check_flow(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.wizard.flows.prod_check')
|
|
|
|
|
|
@pytest.fixture
|
|
def exit_codes(load_module: Callable[[str], ModuleType]) -> ModuleType:
|
|
return load_module('cli.exit_codes')
|