From 9984f6bb66c0bc5047e0de38dbe68103ee45044d Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 14 Apr 2023 09:26:09 +0200 Subject: [PATCH] toulouse_smart: do not try to localize None dates (#76624) --- passerelle/contrib/toulouse_smart/utils.py | 2 ++ tests/test_toulouse_smart.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/passerelle/contrib/toulouse_smart/utils.py b/passerelle/contrib/toulouse_smart/utils.py index e1b2707e..929b706c 100644 --- a/passerelle/contrib/toulouse_smart/utils.py +++ b/passerelle/contrib/toulouse_smart/utils.py @@ -24,5 +24,7 @@ def localtz_to_utc(date_time_string): def utc_to_localtz(date_time_string): + if date_time_string is None: + return None aware_dt_in_local_tz = localtime(parse_datetime(date_time_string)) return make_naive(aware_dt_in_local_tz).isoformat() diff --git a/tests/test_toulouse_smart.py b/tests/test_toulouse_smart.py index eb2889ab..bc857789 100644 --- a/tests/test_toulouse_smart.py +++ b/tests/test_toulouse_smart.py @@ -1207,3 +1207,21 @@ def test_pk_change_migration(migration): assert WcsRequest.objects.get(pk=job.parameters['pk']) assert wcs_request.files.get().resource_id == wcs_request.uuid assert wcs_request.smart_requests.get().resource_id == wcs_request.uuid + + +CREATE_INTERNVENTION_WITH_NONE = json.dumps( + dict(json.loads(get_json_file('create_intervention')), interventionCreated=None) +) + + +@mock_response( + ['/v1/type-intervention', None, INTERVENTION_TYPES], + ['/v1/intervention', CREATE_INTERVENTION_QUERY, CREATE_INTERNVENTION_WITH_NONE], +) +@mock.patch("django.db.models.fields.UUIDField.get_default", return_value=UUID) +def test_create_intervention_none_dates(mocked_uuid4, app, smart): + app.post_json(URL + 'create-intervention/', params=CREATE_INTERVENTION_PAYLOAD) + wcs_request = smart.wcs_requests.get(uuid=UUID) + assert wcs_request.result['interventionCreated'] is None + assert wcs_request.result['interventionDesired'] == '2021-06-30T18:08:05' + assert wcs_request.status == 'sent'