test: 补充核心模块单元测试 (Issue #9)#25
Conversation
P0: _is_safe_verification_command 安全边界 (18 tests) P0: executor 核心执行逻辑 (24 tests) P1: pipeline 并发调度和拓扑排序 (7 tests) 总计: 212 tests (+49), 全部通过 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Code Review — PR #25: 补充核心模块单元测试🔴 Critical1.
建议: 直接调用 🟡 Major2. 交互模式测试缺少
3. 仅检查 4. 未 mock 当 🟢 Minor / Nit
|
Critical:
- test_interrupt_sets_paused 重写为真正测试 _on_interrupt 行为:
通过捕获 _run_pipeline 注册的信号处理器闭包,直接调用并验证
meta.json 写入 paused + sys.exit(0) + os.kill 被调用
Major:
- test_interactive_mode/test_verification_failure_marks_failed
添加 shutil.which('greywall') mock,防止安装 greywall 时代码路径改变
- test_no_git_repo_copies_directory 断言加强:
worktree.exists() → (worktree / 'file.txt').exists()
- 为 6 个 has_changes=True 的测试添加 collect_change_stats mock,
避免依赖 subprocess.run 全局 mock 处理 metrics 调用
Minor:
- fast_logger fixture 复用 conftest.py 的 logger fixture
- test_completed_status 否定断言改为积极断言
- test_context_file_with_verification 脆弱中文断言改为 verify_ok 检查
- test_existing_worktree_reused .git 目录改为文件(匹配真实 worktree)
- 移除重复的 sys.path.insert(conftest.py 已处理)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
🔒 关闭本 PR — 已被 PR #26 取代PR #26 (fix/issue-10-empty-catch) 的第二个提交已包含本 PR 所有测试文件的修复版,并解决了以下 review 问题:
本 PR 关闭,以 PR #26 为准。 |
Critical:
- test_interrupt_sets_paused 重写为真正测试 _on_interrupt 行为:
通过捕获 _run_pipeline 注册的信号处理器闭包,直接调用并验证
meta.json 写入 paused + sys.exit(0) + os.kill 被调用
Major:
- test_interactive_mode/test_verification_failure_marks_failed
添加 shutil.which('greywall') mock,防止安装 greywall 时代码路径改变
- test_no_git_repo_copies_directory 断言加强:
worktree.exists() → (worktree / 'file.txt').exists()
- 为 6 个 has_changes=True 的测试添加 collect_change_stats mock,
避免依赖 subprocess.run 全局 mock 处理 metrics 调用
Minor:
- fast_logger fixture 复用 conftest.py 的 logger fixture
- test_completed_status 否定断言改为积极断言
- test_context_file_with_verification 脆弱中文断言改为 verify_ok 检查
- test_existing_worktree_reused .git 目录改为文件(匹配真实 worktree)
- 移除重复的 sys.path.insert(conftest.py 已处理)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary
修复 Issue #9: 补充核心模块单元测试
新增测试文件
测试覆盖
测试结果
Checklist