Skip to content

test(stream): 补视频号流式端点两格回归锁(#11 首窗建连失败、#13 suffix+wildcard) - #36

Merged
zj1123581321 merged 1 commit into
masterfrom
card/MediaResolverAPI-stream-lock-tests-260923
Sep 23, 2026
Merged

zj1123581321 merged 1 commit into
masterfrom
card/MediaResolverAPI-stream-lock-tests-260923

Conversation

@zj1123581321

Copy link
Copy Markdown
Collaborator

为什么

分诊复核 #11 / #13 时在主脑在 cb1e2b9 上实测:#11、#13 描述的缺陷都已修复(#11-1 首窗建连失败已收拢成 UpstreamDisconnected 并重试后回 502 JSON;#11-2 重复构造的 client 已由 ef9af01 删除,全文件只剩一处构造;#13-P2-1 有 test_mid_file_short_content_range_fails_before_streaming 锁住)。缺的只是两格回归锁——这两格当初找不到锁,正是「缺陷还在不在」要重新实测的原因。

本 PR 只补锁,不改生产代码。

改法

新增 tests/test_stream_boundary_locks.py(60 行,2 用例),桩打在真实生产者边界 app.api.stream.open_cdn_stream,走真实端点 + 真实 lifespan 入口:

用例 锁住的行为 关键断言
test_first_window_connect_error_retries_and_returns_502_json 首窗 CDN 传输层建连失败不逃逸成框架 500 502、!= 500、application/json、open_cdn_stream 调用 ≥ 2(被收进可重试链路)
test_suffix_range_wildcard_complete_length_fails_before_streaming suffix Range + 探针返回 Content-Range: bytes 0-0/* 一律 502,不产出成功响应 502、!= 200、!= 500、application/json、媒体流 aiter_calls == 0、探针流已 aclose

实测与红验

  • 先在 base 上复现主脑探针(首窗 ConnectError → 502 且调用 3 次;grep -n "httpx.AsyncClient(" app/api/stream.py 仅剩 89 行一处;既有 test_mid_file_short_content_range_fails_before_streaming 1 passed),确认「已修」不是读代码推断。
  • 红验(最小注入、单行还原,不改整文件):
    • 把 _read_window 的 except _UPSTREAM_FAIL 收窄成 except UpstreamDisconnected → 用例 1 转红 assert 500 == 502,还原后绿;
    • 注释掉 suffix 分支的 if total is None: raise ... → 用例 2 转红 assert 500 == 502(NoneType - int),还原后绿。
  • 全量:uv run --extra dev python -m pytest tests/ -q → 415 passed。

影响范围

只新增一个测试文件;生产代码、既有测试文件零改动。

备注

Refs #11、Refs #13(关单由主脑在合入后带证据执行)。

Agent-Executor: agy
Agent-Model: gemini-3.8-flash-high
Agent-Effort: unknown
Dispatch-Id: dlg-20260923-082245-959df8
Task-Id: MediaResolverAPI-20260923-03
@github-actions

Copy link
Copy Markdown

Required Gate v2 — 状态面板

当前状态:pass · 可合并

当前裁决:code_pass / primary_pass

历史可能不完整:1 个制品处理失败:URLError;1 个历史重建预算耗尽

Gate 历史(v1;来源为持久化 gate_terminal 制品)

Run Attempt Head 状态 收件人动作
35838239000 1 12076d8 pass 可合并

历史行按 run_id + run_attempt 去重并只增不删;删除本评论后可由 gate_terminal 制品重建。

@zj1123581321
zj1123581321 merged commit c5cec29 into master Sep 23, 2026
12 checks passed
@zj1123581321
zj1123581321 deleted the card/MediaResolverAPI-stream-lock-tests-260923 branch September 23, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant