diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-25 01:17:32 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-25 01:17:32 +0200 |
| commit | 320620a18399eb43c4d9056e9fe4c3ffac8fcfd4 (patch) | |
| tree | a7eb9f0c0c3428fcb20a245d2a5b2b828a8a1a8e /packages/meshbay-hub/tests/node_tree.py | |
| parent | 387138410532daad174ed602fd03f4f979cd3d81 (diff) | |
| download | meshbay-320620a18399eb43c4d9056e9fe4c3ffac8fcfd4.tar.gz | |
test(node): read ops wherever it is split
The tests that read ops.py for an absence (fastapi, a TOML path without
as_posix, the reference app's name) and the one counting operations by
module now take every file of ops.py or the ops package.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/tests/node_tree.py')
| -rw-r--r-- | packages/meshbay-hub/tests/node_tree.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/meshbay-hub/tests/node_tree.py b/packages/meshbay-hub/tests/node_tree.py index 8704492..356bc81 100644 --- a/packages/meshbay-hub/tests/node_tree.py +++ b/packages/meshbay-hub/tests/node_tree.py @@ -52,3 +52,19 @@ def method(name: str) -> str: found.append(ast.get_source_segment(text, member, padded=True)) assert len(found) == 1, f"{name}: expected one definition, found {len(found)}" return found[0] + + +def module_files(name: str) -> list[Path]: + """A node module by name — `ops.py`, or every file of the `ops/` package it + becomes — so a test reading it for an absence goes on reading all of it.""" + src = TRANSPORT.parent + files = [src / f"{name}.py"] if (src / f"{name}.py").exists() else [] + if (src / name).is_dir(): + files += sorted(p for p in (src / name).rglob("*.py") + if "__pycache__" not in p.parts) + assert files, f"no module or package named {name} in the node" + return files + + +def module_source(name: str) -> str: + return "\n".join(p.read_text(encoding="utf-8") for p in module_files(name)) |