Spaces:
Running
Running
| """Regression checks for research-phase session logging.""" | |
| import ast | |
| from pathlib import Path | |
| def test_fresh_research_binds_slog_before_use(): | |
| """Catch the UI-only NameError where _slog was referenced before assignment.""" | |
| source = Path("chat_interface.py").read_text() | |
| module = ast.parse(source) | |
| target = next( | |
| node | |
| for node in module.body | |
| if isinstance(node, ast.ClassDef) and node.name == "ChatDemoInterface" | |
| ) | |
| method = next( | |
| node | |
| for node in target.body | |
| if isinstance(node, ast.FunctionDef) and node.name == "_run_fresh_research" | |
| ) | |
| saw_assignment = False | |
| for node in ast.walk(method): | |
| if isinstance(node, ast.Name) and node.id == "_slog" and isinstance(node.ctx, ast.Load): | |
| assert saw_assignment, "_slog is read before it is assigned in _run_fresh_research" | |
| return | |
| if isinstance(node, ast.Assign): | |
| saw_assignment = any( | |
| isinstance(target, ast.Name) and target.id == "_slog" | |
| for target in node.targets | |
| ) or saw_assignment | |
| raise AssertionError("_run_fresh_research does not read _slog; regression test needs updating") | |