1
0
forked from erp-dev/erp

patch: patch testing (api & services)

This commit is contained in:
2025-11-17 10:10:32 +08:00
parent 9c38e2ac09
commit 02a1b77e19
10 changed files with 337 additions and 102 deletions

View File

@@ -51,9 +51,9 @@ class StepBackTestCase(TestCase):
success, _, _ = services.advance_to_next_state(self.business_object, self.user)
self.assertTrue(success)
# 验证 current_state 是 state1最后完成的状态)
# 验证 current_state 是 state2下一个待执行的状态)
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state1.name)
self.assertEqual(current_state.name, self.state2.name)
# 回退一步
success, message = services.step_back_one_state(self.business_object, self.user)
@@ -63,7 +63,7 @@ class StepBackTestCase(TestCase):
# 验证回到未开始状态
self.assertEqual(services.get_overall_status(self.business_object), 'not_started')
current_state = services.get_business_object_current_state(self.business_object)
self.assertIsNone(current_state)
self.assertEqual(current_state.name, self.state1.name)
# 验证状态1的记录已被撤销
record = models.StateFlowRecord.objects.filter(
@@ -79,18 +79,18 @@ class StepBackTestCase(TestCase):
services.advance_to_next_state(self.business_object, self.user)
services.advance_to_next_state(self.business_object, self.user)
# 验证 current_state 是 state2最后完成的状态)
# 验证 current_state 是 state3下一个待执行的状态)
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state2.name)
self.assertEqual(current_state.name, self.state3.name)
# 回退一步
success, message = services.step_back_one_state(self.business_object, self.user)
self.assertTrue(success)
self.assertIn('状态2', message)
# 验证 current_state 变为state1
# 验证 current_state 变为 state2下一个待执行的
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state1.name)
self.assertEqual(current_state.name, self.state2.name)
# 验证状态2的记录已被撤销
record = models.StateFlowRecord.objects.filter(
@@ -106,20 +106,20 @@ class StepBackTestCase(TestCase):
services.advance_to_next_state(self.business_object, self.user)
services.advance_to_next_state(self.business_object, self.user)
# 验证已完成current_state 是 state3
# 验证已完成current_state 是 None没有待执行的节点
self.assertEqual(services.get_overall_status(self.business_object), 'completed')
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state3.name)
self.assertIsNone(current_state)
# 回退一步
success, message = services.step_back_one_state(self.business_object, self.user)
self.assertTrue(success)
self.assertIn('状态3', message)
# 验证回到进行中状态current_state 变为state2
# 验证回到进行中状态current_state 变为 state3下一个待执行的
self.assertEqual(services.get_overall_status(self.business_object), 'in_progress')
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state2.name)
self.assertEqual(current_state.name, self.state3.name)
def test_step_back_multiple_times(self):
"""测试多次回退"""
@@ -132,13 +132,13 @@ class StepBackTestCase(TestCase):
success, _ = services.step_back_one_state(self.business_object, self.user)
self.assertTrue(success)
current = services.get_business_object_current_state(self.business_object)
self.assertEqual(current.name, self.state2.name)
self.assertEqual(current.name, self.state3.name)
# 第二次回退(撤销 state2
success, _ = services.step_back_one_state(self.business_object, self.user)
self.assertTrue(success)
current = services.get_business_object_current_state(self.business_object)
self.assertEqual(current.name, self.state1.name)
self.assertEqual(current.name, self.state2.name) # 下一个待执行的是 state2
# 第三次回退
success, _ = services.step_back_one_state(self.business_object, self.user)
@@ -163,9 +163,9 @@ class StepBackTestCase(TestCase):
success, _, _ = services.advance_to_next_state(self.business_object, self.user)
self.assertTrue(success)
# 验证 current_state 是 state2最后完成的)
# 验证 current_state 是 state3下一个待执行的)
current_state = services.get_business_object_current_state(self.business_object)
self.assertEqual(current_state.name, self.state2.name)
self.assertEqual(current_state.name, self.state3.name)
def test_step_back_preserves_history(self):
"""测试回退操作保留历史记录"""