workflow_tests: fail webservice call assertion if response is missing (#87824)
This commit is contained in:
parent
58df7bf7bb
commit
0c0807a0d4
|
@ -580,6 +580,14 @@ def test_workflow_tests_webservice(pub):
|
|||
testdef.run(formdef)
|
||||
assert str(excinfo.value) == 'Webservice response Fake response was used 0 times (instead of 1).'
|
||||
|
||||
testdef.workflow_tests.actions = [
|
||||
workflow_tests.AssertWebserviceCall(webservice_response_id='xxx', call_count=1),
|
||||
]
|
||||
|
||||
with pytest.raises(WorkflowTestError) as excinfo:
|
||||
testdef.run(formdef)
|
||||
assert str(excinfo.value) == 'Broken, missing webservice response'
|
||||
|
||||
|
||||
def test_workflow_tests_webservice_status_jump(pub):
|
||||
user = pub.user_class(name='test user')
|
||||
|
|
|
@ -529,14 +529,18 @@ class AssertWebserviceCall(WorkflowTestAction):
|
|||
return r
|
||||
|
||||
def perform(self, formdata, user):
|
||||
try:
|
||||
response = WebserviceResponse.get(self.webservice_response_id)
|
||||
except KeyError:
|
||||
raise WorkflowTestError(_('Broken, missing webservice response'))
|
||||
|
||||
call_count = 0
|
||||
for response in formdata.used_webservice_responses.copy():
|
||||
if response.id == self.webservice_response_id:
|
||||
formdata.used_webservice_responses.remove(response)
|
||||
for used_response in formdata.used_webservice_responses.copy():
|
||||
if used_response.id == self.webservice_response_id:
|
||||
formdata.used_webservice_responses.remove(used_response)
|
||||
call_count += 1
|
||||
|
||||
if call_count != self.call_count:
|
||||
response = WebserviceResponse.get(self.webservice_response_id)
|
||||
raise WorkflowTestError(
|
||||
_('Webservice response %(name)s was used %(count)s times (instead of %(expected_count)s).')
|
||||
% {'name': response.name, 'count': call_count, 'expected_count': self.call_count}
|
||||
|
|
Loading…
Reference in New Issue