feat: initialize governed postbox module
This commit is contained in:
37
tests/test_module_boundary.py
Normal file
37
tests/test_module_boundary.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import ast
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class PostboxModuleBoundaryTests(unittest.TestCase):
|
||||
def test_backend_does_not_import_sibling_module_implementations(self) -> None:
|
||||
root = Path(__file__).parents[1] / "src" / "govoplan_postbox"
|
||||
forbidden = (
|
||||
"govoplan_access",
|
||||
"govoplan_campaign",
|
||||
"govoplan_files",
|
||||
"govoplan_identity",
|
||||
"govoplan_idm",
|
||||
"govoplan_mail",
|
||||
"govoplan_organizations",
|
||||
"govoplan_portal",
|
||||
)
|
||||
violations: list[str] = []
|
||||
for path in root.rglob("*.py"):
|
||||
tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
|
||||
for node in ast.walk(tree):
|
||||
names: list[str] = []
|
||||
if isinstance(node, ast.Import):
|
||||
names.extend(alias.name for alias in node.names)
|
||||
elif isinstance(node, ast.ImportFrom) and node.module:
|
||||
names.append(node.module)
|
||||
for name in names:
|
||||
if name.startswith(forbidden):
|
||||
violations.append(f"{path.relative_to(root)}: {name}")
|
||||
self.assertEqual([], violations)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user