@@ -20,7 +20,7 @@ SPEC.loader.exec_module(MODULE)
|
||||
|
||||
|
||||
class ReleaseUpdateTests(unittest.TestCase):
|
||||
release = "beta 1.2.8.1019"
|
||||
release = "beta 2.0.0.1021"
|
||||
|
||||
def setUp(self):
|
||||
self.temporary = tempfile.TemporaryDirectory()
|
||||
@@ -111,8 +111,7 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
self.assertEqual(summary, "第一行更新摘要, 同一条摘要可以换行。")
|
||||
announcement = MODULE.build_announcement(self.release, summary)
|
||||
self.assertIn(f"{self.release} 更新现已完成", announcement)
|
||||
self.assertIn("更新补偿:摩拉 x200", announcement)
|
||||
self.assertNotIn("原石 x1", announcement)
|
||||
self.assertIn("更新补偿:摩拉 x400,原石 x2", announcement)
|
||||
self.assertNotIn("第二条", announcement)
|
||||
|
||||
def test_policy_release_announces_primogem(self):
|
||||
@@ -121,10 +120,17 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
"beta 1.1.0.1016",
|
||||
"beta 1.2.0.1019",
|
||||
):
|
||||
self.assertEqual(MODULE.mora_compensation_amount(release), 200)
|
||||
self.assertEqual(MODULE.primogem_compensation_amount(release), 1)
|
||||
announcement = MODULE.build_announcement(release, "原石系统上线。")
|
||||
self.assertIn("更新补偿:摩拉 x200,原石 x1", announcement)
|
||||
|
||||
def test_major_release_announces_larger_compensation(self):
|
||||
self.assertEqual(MODULE.mora_compensation_amount(self.release), 400)
|
||||
self.assertEqual(MODULE.primogem_compensation_amount(self.release), 2)
|
||||
announcement = MODULE.build_announcement(self.release, "架构更新完成。")
|
||||
self.assertIn("更新补偿:摩拉 x400,原石 x2", announcement)
|
||||
|
||||
def test_patch_release_without_policy_does_not_announce_primogem(self):
|
||||
release = "beta 1.1.2.1019"
|
||||
self.assertEqual(MODULE.primogem_compensation_amount(release), 0)
|
||||
@@ -149,8 +155,13 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
self.assertEqual(result["stage"], "shutdown")
|
||||
self.assertEqual(result["delivered"], 1)
|
||||
self.assertEqual(delivered[0][1], "group-a")
|
||||
self.assertIn("准备停机更新", delivered[0][2])
|
||||
self.assertIn(self.release, delivered[0][2])
|
||||
self.assertEqual(
|
||||
delivered[0][2],
|
||||
(
|
||||
"Taffy 准备停机更新,本次更新是架构级大版本更新,"
|
||||
f"预期版本{self.release},离线的时候保持耐心迎接Taffy的归来哦~"
|
||||
),
|
||||
)
|
||||
self.assertIn("shutdown", delivered[0][3])
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1000, 50])
|
||||
|
||||
@@ -186,13 +197,13 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
self.assertEqual(len(delivered), 1)
|
||||
self.assertEqual(delivered[0][1], "group-a")
|
||||
self.assertIn("更新摩拉账户并修复重复回复问题", delivered[0][2])
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1200, 250])
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1400, 450])
|
||||
for state in self.account_states():
|
||||
self.assertEqual(state["primogems"], 0)
|
||||
self.assertEqual(state["primogems"], 2)
|
||||
matches = [
|
||||
event
|
||||
for event in state["coin_events"]
|
||||
if event["delta"] == 200
|
||||
if event["delta"] == 400
|
||||
and event["reason"] == f"{self.release} 版本更新补偿"
|
||||
]
|
||||
self.assertEqual(len(matches), 1)
|
||||
@@ -202,7 +213,12 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
for event in state["primogem_events"]
|
||||
if event["reason"] == f"{self.release} 版本更新补偿"
|
||||
]
|
||||
self.assertEqual(primogem_matches, [])
|
||||
self.assertEqual(len(primogem_matches), 1)
|
||||
self.assertEqual(primogem_matches[0]["delta"], 2)
|
||||
self.assertEqual(
|
||||
primogem_matches[0]["created_at"],
|
||||
applied_at.timestamp(),
|
||||
)
|
||||
self.assertEqual(self.announcement_marker()["state"], "delivered")
|
||||
self.assertEqual(len(list(self.backups.glob("*.sqlite3"))), 1)
|
||||
|
||||
@@ -219,8 +235,8 @@ class ReleaseUpdateTests(unittest.TestCase):
|
||||
delivery_helper=self.delivery_helper,
|
||||
deliverer=uncertain,
|
||||
)
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1200, 250])
|
||||
self.assertEqual([state["primogems"] for state in self.account_states()], [0, 0])
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1400, 450])
|
||||
self.assertEqual([state["primogems"] for state in self.account_states()], [2, 2])
|
||||
self.assertEqual(self.announcement_marker()["state"], "uncertain")
|
||||
|
||||
called = []
|
||||
@@ -250,8 +266,8 @@ 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()], [0, 0])
|
||||
self.assertEqual([state["balance"] for state in self.account_states()], [1400, 450])
|
||||
self.assertEqual([state["primogems"] for state in self.account_states()], [2, 2])
|
||||
self.assertEqual(self.announcement_marker()["state"], "delivered")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user