deliver: 交付收口(引擎代为提交)
This commit is contained in:
parent
11aac660b2
commit
ab1f1f9d4f
70
.m11b2d_a1c_patch.py
Normal file
70
.m11b2d_a1c_patch.py
Normal file
@ -0,0 +1,70 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""M11b-2d-A1c 外观债清理补丁脚本(一次性工具,不入库)。
|
||||
|
||||
只对 tests/test_m11b2_single_tx.py 做三处定点替换,每处必须**恰好命中 1 次**,
|
||||
否则整体不写盘并 FAIL 退出——保证「禁改其它任何行」。
|
||||
"""
|
||||
import io
|
||||
import sys
|
||||
|
||||
PATH = "tests/test_m11b2_single_tx.py"
|
||||
|
||||
EDITS = [
|
||||
# (名称, 原文, 新文)
|
||||
("1) TestLatency::test_p99_under_200ms vacuous 断言 -> 对 samples 逐次断言",
|
||||
' samples = []\n'
|
||||
' for i in range(100):\n'
|
||||
' res = self.apply("ev-l-%d" % i, states=[su(state={"hp": i})])\n'
|
||||
' self.assertTrue(res["ok"])\n'
|
||||
' samples.append(res["latency_ms"])\n',
|
||||
|
||||
' results = []\n'
|
||||
' for i in range(100):\n'
|
||||
' res = self.apply("ev-l-%d" % i, states=[su(state={"hp": i})])\n'
|
||||
' self.assertTrue(res["ok"])\n'
|
||||
' results.append(res)\n'
|
||||
' samples = [r["latency_ms"] for r in results]\n'),
|
||||
|
||||
("1b) 删除永真空生成器断言,改为逐次断言全部 res 的 sla_breach",
|
||||
' self.assertFalse(any(r["sla_breach"] for r in [])) # 见下条逐次断言\n',
|
||||
|
||||
' for r in results:\n'
|
||||
' self.assertFalse(r["sla_breach"],\n'
|
||||
' "latency_ms=%r 触发 sla_breach" % r["latency_ms"])\n'),
|
||||
|
||||
("2a) for_update 用例中的死表达式 -> 仅保留两条真实断言",
|
||||
' self.assertEqual("", sqlmod.for_update_clause(SQLITE))\n'
|
||||
' self.assertIn("pbl_entity_state",\n'
|
||||
' " ".join(s for s, _p in self_dummy_log()) if False else "pbl_entity_state")\n',
|
||||
|
||||
' self.assertEqual("", sqlmod.for_update_clause(SQLITE))\n'),
|
||||
|
||||
("2b) 删除配套空函数 self_dummy_log()",
|
||||
'\n\ndef self_dummy_log():\n return []\n',
|
||||
'\n'),
|
||||
|
||||
("3) assert_atomic_rollback 尾逗号(无意义元组)",
|
||||
' self.assertEqual(["BEGIN", "ROLLBACK"], k[-tail:]),\n',
|
||||
' self.assertEqual(["BEGIN", "ROLLBACK"], k[-tail:])\n'),
|
||||
]
|
||||
|
||||
with io.open(PATH, "r", encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
|
||||
orig_len = len(src)
|
||||
for name, old, new in EDITS:
|
||||
n = src.count(old)
|
||||
if n != 1:
|
||||
print("FAIL: 锚点命中 %d 次(应为 1): %s" % (n, name))
|
||||
sys.exit(1)
|
||||
src = src.replace(old, new, 1)
|
||||
print("OK : %s" % name)
|
||||
|
||||
assert "self_dummy_log" not in src, "FAIL: self_dummy_log 残留"
|
||||
assert "for r in []" not in src, "FAIL: 空生成器断言残留"
|
||||
assert "if False else" not in src, "FAIL: 死表达式残留"
|
||||
assert 'k[-tail:]),' not in src, "FAIL: 尾逗号残留"
|
||||
|
||||
with io.open(PATH, "w", encoding="utf-8") as f:
|
||||
f.write(src)
|
||||
print("DONE: %s %d -> %d 字符" % (PATH, orig_len, len(src)))
|
||||
Loading…
x
Reference in New Issue
Block a user