toulouse-maelis: stop triggering a removed wcs demand (#78967)
This commit is contained in:
parent
56e2a4b1d9
commit
16fd6aae41
|
@ -4486,7 +4486,15 @@ class Subscription(models.Model):
|
|||
try:
|
||||
result = wcs_api.post_json(obj.wcs_trigger_payload, [], headers=headers)
|
||||
except WcsApiError as e:
|
||||
self.resource.logger.warning(e)
|
||||
wcs_response = getattr(e.args[2], 'response', None)
|
||||
if wcs_response is not None and wcs_response.status_code == 404:
|
||||
# stop triggering a removed wcs demand
|
||||
self.resource.logger.info(e)
|
||||
obj.wcs_trigger_date = now()
|
||||
obj.wcs_trigger_response = json.loads(e.args[2].response.text)
|
||||
obj.save()
|
||||
else:
|
||||
self.resource.logger.warning(e)
|
||||
return
|
||||
obj.wcs_trigger_date = now()
|
||||
obj.wcs_trigger_response = result
|
||||
|
|
|
@ -11370,3 +11370,16 @@ def test_trigger_wcs_api_error(family_service, activity_service, wcs_service, co
|
|||
subscription = con.subscription_set.get(wcs_form_number='13-12')
|
||||
assert subscription.trigger_status() == 'triggering'
|
||||
assert subscription.wcs_trigger_response is None
|
||||
|
||||
# stop triggering a removed wcs demand
|
||||
wcs_service.add(
|
||||
responses.POST,
|
||||
'https://wcs.example.com/api/forms/exemple-inscription-loisirs-1/12/hooks/update_subscription/',
|
||||
json={'err': 1, 'err_class': 'Page non trouvée', 'err_desc': None},
|
||||
status=404,
|
||||
)
|
||||
con.hourly()
|
||||
assert len([x for x in wcs_service.calls if '/hooks/' in x.request.url]) == 4
|
||||
subscription = con.subscription_set.get(wcs_form_number='13-12')
|
||||
assert subscription.trigger_status() == 'triggered'
|
||||
assert subscription.wcs_trigger_response == {'err': 1, 'err_class': 'Page non trouvée', 'err_desc': None}
|
||||
|
|
Loading…
Reference in New Issue