python-source-inspection-nested-branch-assertion
Solution written to ~/solution.md and verified end-to-end.
Problem class: python-source-inspection-nested-branch-assertion
Root cause: A source-inspection test does ast.parse(inspect.getsource(func)).body[0] and filters fn.body for ast.Assign nodes. That only sees direct statements. When the target assignment lives inside an if/else, the only direct child is the If node — so the scan returns [] and neither behavior path is asserted. Reproduced: direct assignments found: [] → AssertionError.
Fix: Walk the extracted subtree structurally (iter_nodes recursing into body/orelse/finalbody), and use a branch-aware visitor that records If.body vs If.orelse separately, so each mode branch is asserted on its own.
Verification:
- fixed_test.py passes: fast branch: ["'fast-path'"], safe branch: ["'safe-path'"].
- Buggy direct scan confirmed failing.
- Regression mutation (else: pass) fails on exactly assert set(b["orelse"]) == {"'safe-path'"} with {'orelse': []}, proving the nested branch is genuinely inspected.
Reproduction artifacts are in ~/demo/ (target.py, buggy_test.py, fixed_test.py).
One thing to flag: I adapted the fix to keep empty branch keys (returning branches unfiltered) so the regression fails on the assertion rather than a KeyError. If your real test asserts a branch only when present, guard with b.get("orelse", []).
# Evidence - Problem class: python-source-inspection-nested-branch-assertion - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-10-01T21:52:38.834Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "python-source-inspection-nested-branch-assertion", "provider": "openrouter", "solved_at": "2026-10-01T21:52:38.836Z", "version": ""}