Release beta 1.2.1.1019
check / local-gate (push) Failing after 16m58s

This commit is contained in:
JWeBot Contributors
2026-10-19 17:26:44 +08:00
parent e6d6ddf1c6
commit 3a7c11e44d
17 changed files with 162 additions and 77 deletions
+56 -6
View File
@@ -233,11 +233,15 @@ class RoutingTests(unittest.TestCase):
"李神是谁喵",
)
self.assertEqual(
MODULE.clean_chat_reply(
MODULE.unpack_reply_parts(MODULE.clean_chat_reply(
"这波像是脑子知道要撤,但是手完全没同意,"
"而且还顺手把队友也拖下水了。"
),
"这波像是脑子知道要撤\n但是手完全没同意\n而且还顺手把队友也拖下水了喵",
)),
[
"这波像是脑子知道要撤喵",
"但是手完全没同意喵",
"而且还顺手把队友也拖下水了喵",
],
)
def test_profile_memory_rejects_bare_versions_but_keeps_audio_context(self):
@@ -433,6 +437,52 @@ class LedgerAndApplicationTests(unittest.TestCase):
"chat_delivered",
)
def test_delivery_sends_multi_reply_as_separate_helper_calls(self):
runtime_python = Path(self.temporary.name) / "python"
delivery_helper = Path(self.temporary.name) / "jwebot_edge_delivery.py"
runtime_python.write_text("# runtime\n", encoding="utf-8")
delivery_helper.write_text("# helper\n", encoding="utf-8")
result = mock.Mock(returncode=0, stdout="", stderr="")
reply = MODULE.pack_reply_parts(["第一段喵", "第二段喵"])
with mock.patch.object(MODULE, "DELIVERY_HELPER", delivery_helper), \
mock.patch.dict(
os.environ,
{"JWEBOT_RUNTIME_PYTHON": str(runtime_python)},
), \
mock.patch.object(
MODULE.subprocess,
"run",
return_value=result,
) as run:
self.application.deliver(
{
"event_id": "event-1",
"group_fingerprint": "group-a",
"result_text": reply,
}
)
payloads = [
json.loads(call.kwargs["input"])
for call in run.call_args_list
]
self.assertEqual(
payloads,
[
{
"event_id": "event-1:part-1",
"group_fingerprint": "group-a",
"reply": "第一段喵",
},
{
"event_id": "event-1:part-2",
"group_fingerprint": "group-a",
"reply": "第二段喵",
},
],
)
def test_two_direct_generations_run_in_parallel(self):
entered = []
entered_lock = threading.Lock()
@@ -946,9 +996,9 @@ class LedgerAndApplicationTests(unittest.TestCase):
self.assertEqual(version["route"], "local")
self.assertIn("JWeBot 版本", version["text"])
self.assertIn("kernel", version["text"])
self.assertIn("最新版本:beta 1.2.0.1019", version["text"])
self.assertIn("更新时间:2026-10-19 17:05:47", version["text"])
self.assertIn("更新摘要:优化 Taffy 群聊语气", version["text"])
self.assertIn("最新版本:beta 1.2.1.1019", version["text"])
self.assertIn("更新时间:2026-10-19 17:23:58", version["text"])
self.assertIn("更新摘要:修复 Taffy 短句拆分只换行不分条", version["text"])
self.assertEqual(debug["route"], "local")
self.assertIn("调试埋点", debug["text"])
self.assertEqual(balance["route"], "local")
+7 -8
View File
@@ -20,7 +20,7 @@ SPEC.loader.exec_module(MODULE)
class ReleaseUpdateTests(unittest.TestCase):
release = "beta 1.2.0.1019"
release = "beta 1.2.1.1019"
def setUp(self):
self.temporary = tempfile.TemporaryDirectory()
@@ -111,7 +111,8 @@ class ReleaseUpdateTests(unittest.TestCase):
self.assertEqual(summary, "第一行更新摘要, 同一条摘要可以换行。")
announcement = MODULE.build_announcement(self.release, summary)
self.assertIn(f"{self.release} 更新现已完成", announcement)
self.assertIn("更新补偿:摩拉 x200,原石 x1", announcement)
self.assertIn("更新补偿:摩拉 x200", announcement)
self.assertNotIn("原石 x1", announcement)
self.assertNotIn("第二条", announcement)
def test_policy_release_announces_primogem(self):
@@ -187,7 +188,7 @@ class ReleaseUpdateTests(unittest.TestCase):
self.assertIn("更新摩拉账户并修复重复回复问题", delivered[0][2])
self.assertEqual([state["balance"] for state in self.account_states()], [1200, 250])
for state in self.account_states():
self.assertEqual(state["primogems"], 1)
self.assertEqual(state["primogems"], 0)
matches = [
event
for event in state["coin_events"]
@@ -201,9 +202,7 @@ class ReleaseUpdateTests(unittest.TestCase):
for event in state["primogem_events"]
if event["reason"] == f"{self.release} 版本更新补偿"
]
self.assertEqual(len(primogem_matches), 1)
self.assertEqual(primogem_matches[0]["delta"], 1)
self.assertEqual(primogem_matches[0]["created_at"], applied_at.timestamp())
self.assertEqual(primogem_matches, [])
self.assertEqual(self.announcement_marker()["state"], "delivered")
self.assertEqual(len(list(self.backups.glob("*.sqlite3"))), 1)
@@ -221,7 +220,7 @@ class ReleaseUpdateTests(unittest.TestCase):
deliverer=uncertain,
)
self.assertEqual([state["balance"] for state in self.account_states()], [1200, 250])
self.assertEqual([state["primogems"] for state in self.account_states()], [1, 1])
self.assertEqual([state["primogems"] for state in self.account_states()], [0, 0])
self.assertEqual(self.announcement_marker()["state"], "uncertain")
called = []
@@ -252,7 +251,7 @@ class ReleaseUpdateTests(unittest.TestCase):
self.assertEqual(result["compensation"], "already_applied")
self.assertEqual(len(called), 1)
self.assertEqual([state["balance"] for state in self.account_states()], [1200, 250])
self.assertEqual([state["primogems"] for state in self.account_states()], [1, 1])
self.assertEqual([state["primogems"] for state in self.account_states()], [0, 0])
self.assertEqual(self.announcement_marker()["state"], "delivered")