SuperAPI AI 工具集

writing-python-sdk-spector-mock-api-tests

编程与开发

查看项目

更新于 10-16 00:32

技能介绍

用途:根据 Spector 用例(或改动 Spector 用例的 PR)为 TypeSpec 的 http-client-python 生成器编写 Python mock API 测试,验证生成 SDK 的请求与响应行为符合用例预期。

主要能力:识别 Spector 用例链接或从 PR 中提取用例路径;必要时更新 @azure-tools/azure-http-specs 或 @typespec/http-specs 依赖版本;判断测试应放入 azure、unbranded 还是 shared 目录;只重新生成目标 spec 的客户端;编写同步 pytest 测试及对应的 asynctests 异步测试;用 Black 格式化;本地启动 Spector mock 服务器并运行 pytest 验证;在 .chronus/changes 下添加 changelog。

使用方式:先执行 pnpm install,并在 packages/http-client-python 下运行 npm install 与 npm run build。用 npx tsx ./eng/scripts/ci/regenerate.ts --flavor azure --name azure/core/page 只重新生成目标 spec,避免全量重生成。测试放在 packages/http-client-python/tests/mock_api/ 下的 azure、unbranded 或 shared 目录,异步测试放在对应 asynctests 目录。本地验证需两个终端:一个运行 npx tsp-spector serve node_modules/@azure-tools/azure-http-specs/specs/ node_modules/@typespec/http-specs/specs/,另一个在虚拟环境中运行 pytest mock_api/<flavor>/<test_file>.py -v。格式化命令为 python -m black <paths> --config ./eng/scripts/ci/config/pyproject.toml。

适用场景:为 TypeSpec Python SDK 生成器补充或扩展 mock API 测试,尤其是收到 Spector 用例链接或相关 PR 时。

限制:生成代码被 gitignore,不应提交;不要运行不带 --name 的 regenerate 脚本,也不要运行仓库根目录的 pnpm build;仅在引入新依赖时才修改 tests/requirements 下的文件;若修改了生成器源码,需运行受影响风格的完整测试套件。其他细节资料未提供。