test: 修复 standings 约束断言的 flaky(匿名约束 name=None)

与 log-persistence 分支同款修复:constraints 集合含匿名约束(name=None),
any() 子串匹配撞上 None 直接 TypeError,集合顺序不定导致间歇失败。
先判真值再匹配。
This commit is contained in:
WorkBuddy
2026-09-22 12:46:43 +08:00
parent d013407aa1
commit db3c64d49b
+3 -1
View File
@@ -73,7 +73,9 @@ class TestStandingsModel:
def test_unique_constraint_includes_available_at(self): def test_unique_constraint_includes_available_at(self):
names = {c.name for c in Standing.__table__.constraints} names = {c.name for c in Standing.__table__.constraints}
assert any("available" in n and n.startswith("uq_") for n in names), \ # 匿名约束(PK/Check)的 name 是 None,必须先判真值再子串匹配,
# 否则 any() 撞上 None 直接 TypeError(集合顺序不定 → flaky)
assert any(n and "available" in n and n.startswith("uq_") for n in names), \
f"缺少含 available_at 的唯一约束,现有: {names}" f"缺少含 available_at 的唯一约束,现有: {names}"
def test_old_unique_constraint_removed(self): def test_old_unique_constraint_removed(self):