Python 现代开发学习笔记

08-07 把测试放进协作

本章题解 · 全部练习

题目

按第七章建立功能分支,修改一项并发控制或请求行为,留下能揭示差异的测试,再提交并查看 PR 中的变化。

推导与做法

先把“最多两个工作任务、队列不超过三项、输出按输入编号排列”写成检查,再改变实现。一次错误改动应能让这条检查失败。

在 codex/bounded-workers 分支提交实现与检查,先运行这一题,再运行 network_project 的完整 pytest。PR 说明具体改变的并发行为,不把一次更快的偶然计时当作正确性的证明。

实现与运行

查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。

在配套目录的 并发异步与HTTP/network_project 中运行。先按项目 README 执行 uv sync --locked。

# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch08.py" 08-07

程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。

查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
  "regression_check": "passed",
  "branch": "codex/bounded-workers",
  "result": {
    "peak": 2,
    "queue_peak": 3,
    "count": 100,
    "first_last": [
      "/books/0",
      "/books/99"
    ]
  }
}

笔记正文与全部题解 · Ctrl / ⌘ K