forked from erp-dev/erp
patch: patch testing (api & services)
This commit is contained in:
@@ -565,48 +565,30 @@ class BusinessObjectNewAPITestCase(TestCase):
|
||||
self.assertEqual(response.data['count'], 0)
|
||||
|
||||
def test_current_state_parameters_api(self):
|
||||
"""测试获取当前状态(最后完成状态)参数 API"""
|
||||
# 未开始时,current_state 为 None,应返回无参数消息
|
||||
"""测试获取当前状态(下一个待执行状态)参数 API"""
|
||||
# 未开始时,current_state 为 state1(第一个待执行的),应返回 state1 的参数
|
||||
response = self.client.get(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data['parameters']), 0)
|
||||
self.assertIn('message', response.data)
|
||||
self.assertEqual(response.data['state']['id'], self.state1.id)
|
||||
self.assertEqual(len(response.data['parameters']), 2)
|
||||
|
||||
# 推进(完成第一个状态),current_state 变为 state1(最后完成的状态)
|
||||
# 推进(完成第一个状态),current_state 变为 state2(下一个待执行的状态)
|
||||
self.client.post(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/advance/',
|
||||
{'parameters': {'param1': 'test_value'}},
|
||||
format='json'
|
||||
)
|
||||
|
||||
# 现在 current_state 是 state1(有参数)
|
||||
response = self.client.get(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data['state']['id'], self.state1.id)
|
||||
self.assertEqual(response.data['count'], 2)
|
||||
self.assertEqual(len(response.data['parameters']), 2)
|
||||
|
||||
# 测试只获取必填参数
|
||||
response = self.client.get(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/?required_only=true'
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data['count'], 1)
|
||||
self.assertEqual(response.data['parameters'][0]['key'], 'param1')
|
||||
|
||||
# 推进(完成第二个状态),current_state 变为 state2(无参数)
|
||||
self.client.post(f'/api/v1/stateflow/business-objects/{self.business_object.id}/advance/')
|
||||
|
||||
# 现在 current_state 是 state2(无参数)
|
||||
response = self.client.get(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(response.data['state']['id'], self.state2.id)
|
||||
self.assertEqual(response.data['count'], 0)
|
||||
self.assertEqual(len(response.data['parameters']), 0)
|
||||
|
||||
def test_state_parameters_api(self):
|
||||
"""测试 State 的参数 API"""
|
||||
|
||||
Reference in New Issue
Block a user