用途:为 Sentry 的混合云架构生成测试,适用于被要求“generate HC test”“create hybrid cloud test”“write HC test”“add HC test”等场景。覆盖 RPC 服务、API 网关代理、outbox 模式、端点 silo 装饰器四类测试。
主要能力与流程:先按信号判定测试类别(RPC 服务、API 网关、Outbox、端点 silo),信号不明确时向用户确认;再收集上下文,读取被测源码模块,依据 @cell_silo_endpoint、@control_silo_endpoint、local_mode = SiloMode.X、@cell_silo_model/@control_silo_model 判断 silo 模式,并按镜像路径约定定位已有测试文件(如 src/sentry/foo/bar.py → tests/sentry/foo/test_bar.py),阅读现有测试与方法签名。随后按类别加载对应参考文档(references/rpc-service-tests.md、api-gateway-tests.md、outbox-tests.md、endpoint-silo-tests.md)生成测试,最后按检查清单校验。
关键约束:始终使用工厂方法(self.create_user()、self.create_organization()),不得用 Model.objects.create();不得把工厂调用包在 assume_test_silo_mode 或 assume_test_silo_mode_of 中,仅对直接 ORM 查询使用 silo 上下文管理器;始终用 pytest 风格断言(assert x == y),不用 self.assertEqual();优先把测试加入已有测试文件;跨 silo ORM 访问单模型用 assume_test_silo_mode_of(Model),多模型或非模型操作用 assume_test_silo_mode(SiloMode.X);多数测试用 TestCase,仅在线程、并发、多进程等需要真实提交事务时用 TransactionTestCase;涉及 RPC 模型的测试文件不得使用 from future import annotations。
运行命令:pytest -svv --reuse-db tests/sentry/path/to/test_file.py。
限制:资料未提供该技能的安装方式、收费、价格、平台与效果信息。