test(docs-center): 金丝雀分类断言改「必备分类在场+相对顺序」(分类扩展不再留假红)
ci/woodpecker/push/main Pipeline failed

- test_prod_content_readable 原硬编码 [term,formula,practice,faq],与生产 categories.json 全等比较;
  2026-10-12 14:05 内容目录新增 manual(模块手册,order 5) 后期望值失鲜 ⇒ 基线/改后两棵树同红。
- 改为子集式断言(必备分类在场 + 过滤后相对顺序),不再硬编码全集;分类扩展不再红。
- 同族断言盘点:本文件其余分类断言走 tmp content_dir 自持 categories.json,不依赖生产内容目录,无需改。
This commit is contained in:
wecom-fullstack
2026-10-13 07:48:18 +08:00
committed by wecom-yanxue
parent cfd6a13ca4
commit f786ff9ae3
+7 -1
View File
@@ -209,7 +209,13 @@ class TestProdContentCanary:
body = r.json()
assert body["available"] is True and body["skipped"] == [], body["skipped"]
assert body["count"] >= 20, f"迁移应有 20 篇,实际 {body['count']}"
assert [c["key"] for c in body["categories"]] == ["term", "formula", "practice", "faq"]
# 口径(2026-10-12 失鲜收口):分类集合随内容扩展(当日新增 manual/模块手册,order 5),
# 故只断言「必备分类在场 + 相对顺序正确」,不再硬编码全集,避免下次扩类再留假红。
keys = [c["key"] for c in body["categories"]]
required = ["term", "formula", "practice", "faq"]
assert set(required) <= set(keys), \
f"生产内容缺必备分类:{sorted(set(required) - set(keys))};实际 {keys}"
assert [k for k in keys if k in required] == required, f"必备分类相对顺序异常:{keys}"
for slug in ("term-kpi", "formula-achievement-rate", "practice-threshold-tips", "faq-data-sync"):
d = client.get(f"/api/cma/docs/{slug}", headers=auth_header(token)).json()
assert d["title"] and d["content"].strip()