toulouse_smart: skip add_media having no intervention (#60276)
This commit is contained in:
parent
47f7cad1eb
commit
f203135208
|
@ -321,7 +321,9 @@ class ToulouseSmartResource(BaseResource, HTTPResource):
|
|||
def add_media_job(self, *args, **kwargs):
|
||||
wcs_request_file = WcsRequestFile.objects.get(id=kwargs['id'])
|
||||
wcs_request = wcs_request_file.resource
|
||||
if not wcs_request.result or not wcs_request.result.get('id'):
|
||||
if wcs_request.status == 'failed':
|
||||
raise Exception('related wcs request failed')
|
||||
if wcs_request.status == 'registered':
|
||||
raise SkipJob(datetime.timedelta(minutes=10))
|
||||
|
||||
if not wcs_request_file.push():
|
||||
|
|
|
@ -910,6 +910,38 @@ def test_add_media_timeout_error(mocked_uuid, app, freezer, smart):
|
|||
assert job.update_timestamp > job.creation_timestamp
|
||||
|
||||
|
||||
@mock_response(
|
||||
['/v1/type-intervention', None, INTERVENTION_TYPES],
|
||||
['/v1/intervention/%s/media' % INTERVENTION_ID, ADD_MEDIA_QUERY, 200],
|
||||
['/v1/intervention', CREATE_INTERVENTION_QUERY, '400 Client Error', 400],
|
||||
)
|
||||
@mock.patch("django.db.models.fields.UUIDField.get_default", return_value=UUID)
|
||||
def test_add_media_with_create_intervention_failure(mocked_uuid, app, smart):
|
||||
resp = app.post_json(URL + 'create-intervention/', params=CREATE_INTERVENTION_PAYLOAD)
|
||||
assert not resp.json['err']
|
||||
|
||||
url = resp.json['data']['payload']['add_media_url']
|
||||
url = URL + 'add-media?uuid=%s' % str(UUID)
|
||||
resp = app.post_json(url, params=ADD_MEDIA_PAYLOAD)
|
||||
assert not resp.json['err']
|
||||
assert resp.json['data']['uuid'] == str(UUID)
|
||||
assert resp.json['data']['nb_registered'] == 1
|
||||
job = Job.objects.get(method_name='add_media_job')
|
||||
assert job.status == 'registered'
|
||||
|
||||
# simulate failure on intervention creation
|
||||
wcs_request = smart.wcs_requests.get(uuid=UUID)
|
||||
wcs_request.status = 'failed'
|
||||
wcs_request.save()
|
||||
wcs_request_file = wcs_request.files.get(**job.parameters)
|
||||
path = wcs_request_file.content.path
|
||||
|
||||
smart.jobs()
|
||||
job = Job.objects.get(method_name='add_media_job')
|
||||
assert job.status == 'failed'
|
||||
assert 'related wcs request failed' in job.status_details['error_summary']
|
||||
|
||||
|
||||
UPDATE_INTERVENTION_QUERY_ON_ASYNC_CREATION = {
|
||||
'creation_response': {
|
||||
'wcs_form_api_url': CREATE_INTERVENTION_PAYLOAD_EXTRA['form_api_url'],
|
||||
|
|
Loading…
Reference in New Issue