Gate one-open-per-expiry by historical expiry_ymd across days.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -152,22 +152,23 @@ def test_one_expiry_per_day(tmp_path, monkeypatch) -> None:
|
||||
from app.models.db import Database
|
||||
|
||||
db = Database(tmp_path / "one_exp.db")
|
||||
day = datetime(2026, 8, 1, 12, 0, tzinfo=_SH)
|
||||
# 日历已跨到 8.3,但 8.2 开过的 260803 仍须占用
|
||||
day = datetime(2026, 8, 3, 0, 0, 2, tzinfo=_SH)
|
||||
with db._lock:
|
||||
db._conn.execute(
|
||||
"""INSERT INTO groups(group_id, status, expiry_ymd, open_at_ms)
|
||||
VALUES ('G-20260802-01','closed','260803',1)"""
|
||||
)
|
||||
db._conn.execute(
|
||||
"""INSERT INTO groups(group_id, status, expiry_ymd, open_at_ms)
|
||||
VALUES ('G-20260801-01','closed','260802',1)"""
|
||||
)
|
||||
db._conn.execute(
|
||||
"""INSERT INTO groups(group_id, status, expiry_ymd, open_at_ms)
|
||||
VALUES ('G-20260731-01','closed','260801',1)"""
|
||||
)
|
||||
db._conn.commit()
|
||||
used = used_expiry_ymds_for_day(db, day)
|
||||
assert used == {"260802"}
|
||||
assert expiry_blocked_by_one_per_day("260802", used, enabled=True) is True
|
||||
assert expiry_blocked_by_one_per_day("260803", used, enabled=True) is False
|
||||
assert expiry_blocked_by_one_per_day("260802", used, enabled=False) is False
|
||||
assert used == {"260803", "260802"}
|
||||
assert expiry_blocked_by_one_per_day("260803", used, enabled=True) is True
|
||||
assert expiry_blocked_by_one_per_day("260804", used, enabled=True) is False
|
||||
assert expiry_blocked_by_one_per_day("260803", used, enabled=False) is False
|
||||
db.close()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user