用途:针对项目中使用 ServiceResult 模式时出现的测试失败与类型错误,提供系统化的诊断与修复流程,重点覆盖 mock 配置、异步模式与类型安全。
主要能力:修复 mock 返回 dict 而非 ServiceResult 导致的“'dict' object has no attribute 'success'”;修复 AsyncMock 未设置正确 return_value 导致的协程错误;处理 ServiceResult 链式调用与组合工具(map、bind、flatmap);解决 ServiceResult[T] 类型不匹配;处理对 None 数据的 unwrap 安全问题。
使用方式:先运行测试并归类错误,例如 uv run pytest tests/path/to/failing_test.py -v;再用 AsyncMock(return_value=ServiceResult.ok(...)) 修正 mock,用 compose_results、map_result、chain_results、collect_results 等工具改写链式调用。修改后运行 uv run pytest 与 uv run pyright src/project_watch_mcp/ 验证。技能还提供 fix_serviceresult_mocks.py、validate_serviceresult_usage.py、find_serviceresult_chains.py 等脚本。
适用场景:测试断言失败、mock 配置错误、异步 ServiceResult 用法错误、类型检查报错、unwrap 空数据异常等。
限制:资料未提供该技能的收费、平台与具体安装步骤,需具备 ServiceResult 模式、AsyncMock 与 Python 类型注解基础。