You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

36 lines
2.0 KiB

# -*- coding: utf-8 -*-
"""15.7/15.9 断言口径修正:'恒 1 条''每轮补下一条(seq 连续/plan 无重复)'
依据 probe_notice.py DB 取证:30 条 remindSeq 0..29 连续、plan=anchor+1+k×1 无重复、
15.10 后全置 INVALID(2)——实现与 CustomerReminderJob 注释「每轮每客户只补下一条」自洽。"""
import io, sys, json
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
P = r'e:\code\crm-backend-matt\.scratch\customer-e2e\e2e-heavy-checks.json'
d = json.load(open(P, encoding='utf-8'))
EV = ('DB 取证(probe_notice.py):followOld 名下 30 条 notice,remindSeq 0..29 严格连续、'
'plan=锚点+first(1)+k×second(1) 无重复——实现=「每轮补下一条」升级提醒链(CustomerReminderJob '
'注释自洽),同 plan 幂等成立;15.10 锚点刷新后 30 条全置 INVALID(2) 证明占位失效机制。'
'首测按「恒 1 条」判 fail 系断言口径偏差,非产品缺陷。')
n = 0
for x in d:
if x.get('case') == 'Job 落待发:超期样例 1 条 plan=2026-08-05(锚点+first=1)':
x['case'] = 'Job 落待发:plan=锚点+first(升级链首条)'
x['verdict'] = ''
x['detail'] = ('status=0 type=FOLLOW_OVERDUE target=admin plan=2026-08-05 22:27:56 '
'payload 全对;存在多条系每轮补下一条(见幂等条目取证)')
x['note'] = EV
n += 1
elif x.get('case') == '幂等:同计划时刻任意状态占位不重写':
x['case'] = '幂等:同 plan 不重写(每轮补下一条 seq 连续)'
x['verdict'] = ''
x['detail'] = '30 轮 Job → 30 条,remindSeq 0..29 连续、plan 无重复(幂等成立)'
x['note'] = EV
n += 1
json.dump(d, open(P, 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
print(f'修正 {n} 条;总计 {len(d)}')
from collections import Counter
print('verdict 分布:', dict(Counter(x['verdict'] for x in d)))