intel-mac-local-llm / source /kernel /tests /test_no_shadowing.py
miutti's picture
Source: kernel, desktop app, tools (snapshot of the GitHub repo)
df41178 verified
Raw History Blame Contribute Delete
850 Bytes
import ast
import collections
import unittest
from pathlib import Path
KERNEL = Path(__file__).resolve().parents[1]
class NoShadowingTest(unittest.TestCase):
def test_top_level_names_are_unique(self):
"""10/2: 新しい _atatameru が下の古い同名に上書きされ、一度も呼ばれなかった。同じ名の定義を二つ置かない。"""
for path in sorted(KERNEL.glob("*.py")) + [KERNEL.parent / "dougu" / "jiyuu.py"]:
tree = ast.parse(path.read_text(encoding="utf-8"))
names = collections.Counter(node.name for node in tree.body
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)))
self.assertEqual({name: n for name, n in names.items() if n > 1}, {}, path.name)
if __name__ == "__main__":
unittest.main()