stempel scan UTC-naive utk scanned_at/first_seen_at (V62/B24) — pemilih BARU ⊖ tertahan 7 jam
This commit is contained in:
1 parent
d6b5927307
commit
56ff265d11
4 files changed
+22
-4
No files matched your search
+15
-1
@@ -10,7 +10,7 @@ membuktikan ia lolos ke snapshot, bukan dibuang.
|
||||
import os
|
||||
import sqlite3
|
||||
import tempfile
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
import requests
|
||||
|
||||
@@ -229,6 +229,20 @@ def main():
|
||||
check('V7 owner PRIMARY KEY', 'owner' in cols and pk == ['owner'])
|
||||
check('V7 kolom last_vote ada', 'last_vote' in cols)
|
||||
|
||||
# V62: stempel scan UTC-naive (konsisten dgn cutoff umur dashboard/
|
||||
# distribusi yang pakai `datetime.now(timezone.utc)`). Dulu `datetime.now()`
|
||||
# (waktu lokal container, TZ=Asia/Jakarta UTC+7) → `first_seen_at` WIB
|
||||
# dibandingkan sbg string UTC → maturity pemilih BARU bergeser +7 jam
|
||||
# (B24). Guard: stamp ≈ now-UTC-naive, ⊖ WIB (offset ±2 mnt toleransi).
|
||||
utc_now = datetime.now(timezone.utc).replace(tzinfo=None)
|
||||
for s in (scanned_a, scanned_b):
|
||||
stamp = datetime.fromisoformat(s)
|
||||
delta = abs((utc_now - stamp).total_seconds())
|
||||
check(f'V62 stempel scan UTC-naive ({s})',
|
||||
delta < 120 and stamp.tzinfo is None)
|
||||
wib_delta = abs((utc_now - timedelta(hours=7) - stamp).total_seconds())
|
||||
check(f'V62 stempel scan ⊖ WIB ({s})', wib_delta > 60)
|
||||
|
||||
# V41: first_seen — kemunculan pertama tiap owner, idempoten (⊥ overwrite)
|
||||
db.record_first_seen([{'owner': 'aaa1'}], '2000-01-01T00:00:00')
|
||||
conn = sqlite3.connect(db.DB_PATH)
|
||||
|
||||
Reference in new issue
Block a user