code-to10 v5: fix November date failure in arch-converge quota gate fixture (fixture day follows current UTC month; assertions and gate semantics unchanged; frozen-semantics header updated explicitly)
(cherry picked from commit 073950043ed65039e19be8a4b6d725a44a662879) Reconcile-note: this datefix was missing from the solidify line (aa30d40's test_arch_converge.py had no _current_month_day and still failed in November, while 10023fb/6841f28 contained it); added here as the separately-labeled fix for that replay omission, per the reconcile brief.
This commit is contained in:
1 parent
b3f3f8bcab
commit
79835cf3c1
1 file changed
+29
-2
@@ -13,6 +13,18 @@
|
|||||||
无配额行按默认值,显式 NULL 行才是不限额。
|
无配额行按默认值,显式 NULL 行才是不限额。
|
||||||
- 失联清理只在 interrupted + 心跳停滞严格超阈时放行;
|
- 失联清理只在 interrupted + 心跳停滞严格超阈时放行;
|
||||||
容器清理只认 codex-<32 位 hex>,绝不按前缀删。
|
容器清理只认 codex-<32 位 hex>,绝不按前缀删。
|
||||||
|
|
||||||
|
设计变更 2026-11-02(11 月日期失败修复,code-to10 v5):
|
||||||
|
- 旧声明:本文件固件日期一律写死(_cost_row 默认
|
||||||
|
day="2026-10-31"),未区分“按当月查用量”与“按指定月
|
||||||
|
查用量”两类测试。
|
||||||
|
- 新声明:按当前 UTC 月查用量的门禁测试,固件日期必须
|
||||||
|
跟随当前 UTC 月(_current_month_day(),当月 1 日);
|
||||||
|
按指定月查用量的测试仍用写死日期 + 显式月份查询。
|
||||||
|
- 为什么改:门禁(automations._automation_quota_exceeded)
|
||||||
|
按当前 UTC 月查用量,写死 2026-10-31 的固件在
|
||||||
|
2026-11-01 起恒败(10 月行计为 0,门禁返回 None);
|
||||||
|
失败的是固件不是门禁逻辑;断言与门禁语义一字未改。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
@@ -21,6 +33,7 @@ import sqlite3
|
|||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
|
from datetime import datetime, timezone
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
@@ -91,6 +104,18 @@ def _cost_row(conn, task_id, usd, inp, out, source, day="2026-10-31"):
|
|||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
|
||||||
|
def _current_month_day():
|
||||||
|
"""门禁测试用固件日期:当前 UTC 月的 1 日。
|
||||||
|
|
||||||
|
门禁按当前 UTC 月查用量,固件日期必须落在当月;写死
|
||||||
|
某月某日会在月份滚动后恒败(2026-11 实测)。只用于
|
||||||
|
按当月查用量的门禁测试;按指定月查用量的测试(如
|
||||||
|
test_monthly_usage_actual_only)仍用写死的 2026-10-31
|
||||||
|
固件 + 显式 "2026-10" 查询,不受影响。
|
||||||
|
"""
|
||||||
|
return datetime.now(timezone.utc).strftime("%Y-%m-01")
|
||||||
|
|
||||||
|
|
||||||
class TimeoutConvergeTestCase(unittest.TestCase):
|
class TimeoutConvergeTestCase(unittest.TestCase):
|
||||||
def test_constants_match_old_literals(self):
|
def test_constants_match_old_literals(self):
|
||||||
self.assertEqual(timeouts.APPROVAL_DEFAULT_SECONDS, 3600)
|
self.assertEqual(timeouts.APPROVAL_DEFAULT_SECONDS, 3600)
|
||||||
@@ -265,13 +290,15 @@ class QuotaConvergeTestCase(unittest.TestCase):
|
|||||||
try:
|
try:
|
||||||
conn.execute("INSERT INTO user_quotas VALUES('u1', 100000000, 0)")
|
conn.execute("INSERT INTO user_quotas VALUES('u1', 100000000, 0)")
|
||||||
conn.commit()
|
conn.commit()
|
||||||
_cost_row(conn, "t1", None, 999900, 99, "estimated")
|
_cost_row(conn, "t1", None, 999900, 99, "estimated",
|
||||||
|
day=_current_month_day())
|
||||||
with mock.patch.dict(
|
with mock.patch.dict(
|
||||||
os.environ,
|
os.environ,
|
||||||
{"CLOUD_QUOTA_UNPRICED_TOKEN_CAP": "1000"}):
|
{"CLOUD_QUOTA_UNPRICED_TOKEN_CAP": "1000"}):
|
||||||
# 估算行再大也不拦。
|
# 估算行再大也不拦。
|
||||||
self.assertIsNone(_automation_quota_exceeded(conn, "u1"))
|
self.assertIsNone(_automation_quota_exceeded(conn, "u1"))
|
||||||
_cost_row(conn, "t1", None, 600, 500, "actual")
|
_cost_row(conn, "t1", None, 600, 500, "actual",
|
||||||
|
day=_current_month_day())
|
||||||
blocked = _automation_quota_exceeded(conn, "u1")
|
blocked = _automation_quota_exceeded(conn, "u1")
|
||||||
self.assertIsNotNone(blocked)
|
self.assertIsNotNone(blocked)
|
||||||
self.assertIn("quota_exceeded", blocked)
|
self.assertIn("quota_exceeded", blocked)
|
||||||
|
|||||||
Reference in new issue
Block a user