36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""B0.1 冒烟:工具链与包结构可用(不测业务逻辑,业务逻辑随 B1 迁移进来)。"""
|
||
|
||
import subprocess
|
||
import sys
|
||
|
||
import pytest
|
||
|
||
|
||
def test_package_imports() -> None:
|
||
import aps
|
||
|
||
assert aps.__version__ == "0.1.0"
|
||
|
||
|
||
@pytest.mark.parametrize("name", ["api", "domain", "engines", "state", "importers", "governance"])
|
||
def test_subpackages_import(name: str) -> None:
|
||
"""每个子包都对应 B 线的一个搬迁目标,导入不了说明结构被改坏了。"""
|
||
module = __import__(f"aps.{name}", fromlist=[name])
|
||
|
||
assert module.__doc__, f"aps.{name} 缺少说明它负责什么的 docstring"
|
||
|
||
|
||
def test_platform_code_is_not_imported() -> None:
|
||
"""APS 不依赖平台代码:aps 包内不得出现对平台模块的引用(ADR-0010)。"""
|
||
result = subprocess.run(
|
||
[
|
||
sys.executable,
|
||
"-c",
|
||
"import aps, aps.api, aps.domain, aps.engines, aps.state, aps.importers, aps.governance",
|
||
],
|
||
capture_output=True,
|
||
text=True,
|
||
)
|
||
|
||
assert result.returncode == 0, result.stderr
|