Release beta 2.0.4.1023
This commit is contained in:
@@ -1291,9 +1291,9 @@ class LedgerAndApplicationTests(unittest.TestCase):
|
||||
self.assertEqual(version["route"], "local")
|
||||
self.assertIn("JWeBot 版本", version["text"])
|
||||
self.assertIn("kernel", version["text"])
|
||||
self.assertIn("最新版本:beta 2.0.2.1021", version["text"])
|
||||
self.assertIn("更新时间:2026-10-21 18:11:35", version["text"])
|
||||
self.assertIn("更新摘要:上下文追问小版本更新完成", version["text"])
|
||||
self.assertIn("最新版本:beta 2.0.4.1023", version["text"])
|
||||
self.assertIn("更新时间:2026-10-23 16:56:33", version["text"])
|
||||
self.assertIn("更新摘要:许愿池和 21 点小版本更新完成", version["text"])
|
||||
self.assertEqual(debug["route"], "local")
|
||||
self.assertIn("调试埋点", debug["text"])
|
||||
self.assertEqual(balance["route"], "local")
|
||||
@@ -1574,7 +1574,7 @@ class LedgerAndApplicationTests(unittest.TestCase):
|
||||
|
||||
def test_trivia_quiz_broadcast_and_answer_rewards_mora(self):
|
||||
bank = MODULE.trivia_question_bank()
|
||||
self.assertGreater(len(bank), 200)
|
||||
self.assertEqual(len(bank), 500)
|
||||
display_text = "\n".join(
|
||||
"\n".join(
|
||||
[
|
||||
@@ -1640,10 +1640,12 @@ class LedgerAndApplicationTests(unittest.TestCase):
|
||||
delivery = self.application.deliver.call_args.args[0]
|
||||
self.assertIn("冷门知识问答", delivery["result_text"])
|
||||
self.assertIn("限时5分钟", delivery["result_text"])
|
||||
self.assertIn("出现次数:1", delivery["result_text"])
|
||||
self.assertIn("/回答 A", delivery["result_text"])
|
||||
state = ledger.local_game("group-a", MODULE.TRIVIA_GAME_KEY)
|
||||
self.assertIsNotNone(state)
|
||||
assert state is not None
|
||||
self.assertEqual(state["ask_count"], 1)
|
||||
state["expires_at"] = time.time() + 300
|
||||
ledger.save_local_game("group-a", MODULE.TRIVIA_GAME_KEY, state)
|
||||
answer = str(state["answer"])
|
||||
@@ -1664,6 +1666,49 @@ class LedgerAndApplicationTests(unittest.TestCase):
|
||||
account = ledger._load_player_account("group-a", str(person["person_key"]))
|
||||
self.assertEqual(account["balance"], 1000 + reward)
|
||||
|
||||
def test_trivia_quiz_prefers_least_asked_base_id(self):
|
||||
group = "group-trivia-balance"
|
||||
topic = "原神"
|
||||
topic_base_ids = sorted(
|
||||
{
|
||||
str(question["base_id"])
|
||||
for question in MODULE.trivia_question_bank()
|
||||
if question["topic"] == topic
|
||||
}
|
||||
)
|
||||
self.assertGreater(len(topic_base_ids), 3)
|
||||
least_asked = topic_base_ids[2]
|
||||
ask_counts = {base_id: 4 for base_id in topic_base_ids}
|
||||
ask_counts[least_asked] = 1
|
||||
self.application.ledger.save_local_game(
|
||||
group,
|
||||
MODULE.TRIVIA_HISTORY_KEY,
|
||||
{
|
||||
"recent_base_ids": topic_base_ids[: MODULE.TRIVIA_RECENT_BASE_LIMIT],
|
||||
"ask_counts": ask_counts,
|
||||
},
|
||||
)
|
||||
|
||||
selected = self.application.clock.select_trivia_question(
|
||||
group=group,
|
||||
local_now=MODULE.datetime(
|
||||
2026,
|
||||
10,
|
||||
23,
|
||||
13,
|
||||
0,
|
||||
tzinfo=MODULE.BEIJING_TIMEZONE,
|
||||
),
|
||||
topic=topic,
|
||||
)
|
||||
|
||||
self.assertEqual(selected["base_id"], least_asked)
|
||||
self.assertEqual(selected["ask_count"], 2)
|
||||
self.assertIn(
|
||||
"出现次数:2",
|
||||
self.application.clock.render_trivia_message(selected),
|
||||
)
|
||||
|
||||
def test_trivia_quiz_can_be_started_by_local_command(self):
|
||||
self.application.deepseek.complete = mock.Mock(side_effect=AssertionError)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user