test(ad-ecpm): exercise eCPM ¥500 clamp path + explicit zero-revenue assert

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
guke
2026-07-10 14:18:22 +08:00
parent 5e8c9d3028
commit 166fe9e8dd
+4 -2
View File
@@ -35,12 +35,14 @@ def test_revenue_yuan_by_trace_sums_and_clamps() -> None:
_ecpm("t1", "200", "sess-t1-a"),
_ecpm("t1", "300", "sess-t1-b"),
_ecpm("t2", "0", "sess-t2-a"),
_ecpm("t_cap", "60000", "sess-cap-a"), # 600 元 CPM > ¥500 钳顶
])
db.flush()
rev = crud_ecpm.revenue_yuan_by_trace(db, ["t1", "t2", "t3"])
rev = crud_ecpm.revenue_yuan_by_trace(db, ["t1", "t2", "t3", "t_cap"])
assert rev["t1"] == 0.005
assert rev.get("t2", 0.0) == 0.0
assert rev["t2"] == 0.0 # 有展示但 eCPM=0 → 0 元(仍在结果里)
assert "t3" not in rev # 无展示的 trace 不出现在结果里
assert rev["t_cap"] == 0.5 # min(¥600, ¥500)/1000,证明钳顶生效(非 0.6)
finally:
db.rollback()
db.close()