import pytest
@pytest.fixture(autouse=True)
def isolate_ttk_environment(monkeypatch):
"""Ensure tests do not accidentally pick up real device or config."""
monkeypatch.delenv("ASCEND_HOME_PATH", raising=False)
monkeypatch.delenv("ASCEND_TOOLKIT_HOME", raising=False)
monkeypatch.delenv("ASCEND_OPP_PATH", raising=False)
monkeypatch.delenv("ASCEND_ROOT", raising=False)
@pytest.fixture
def make_testcase():
"""Factory: TestcaseAclnn instances (shared global; test_testcase_e2e.py
overrides locally with TestcaseE2e)."""
def _make(api_name="aclnnDummy", **kwargs):
from ttk.core_modules.testcase_manager.testcase_aclnn import TestcaseAclnn
case = TestcaseAclnn()
case.api_name = api_name
case.is_valid = True
case.fail_reason = None
case.attributes = kwargs.pop("attributes", {})
for k, v in kwargs.items():
setattr(case, k, v)
return case
return _make
@pytest.fixture(scope="session", autouse=True)
def _load_default_config():
"""所有测试前加载默认 config 一次(替代被删的 get_config lazy fallback)。
删 lazy fallback 后 get_config() 不再自动加载;这个 session fixture 保证
_config 已加载默认配置链(default.yaml + ~/.config/ttk + ./ttk.conf.yaml),
测试可直接 get_config()。需要自定义 config 的测试在测试体内显式
load_config(yaml),测完 load_config() 恢复默认。
"""
from ttk.config.loader import load_config
load_config()
yield