diff --git a/passerelle/contrib/toulouse_smart/utils.py b/passerelle/contrib/toulouse_smart/utils.py index 60a4690d..e1b2707e 100644 --- a/passerelle/contrib/toulouse_smart/utils.py +++ b/passerelle/contrib/toulouse_smart/utils.py @@ -19,7 +19,7 @@ from django.utils.timezone import localtime, make_aware, make_naive, utc def localtz_to_utc(date_time_string): - aware_dt_in_utc = make_aware(parse_datetime(date_time_string)).astimezone(utc) + aware_dt_in_utc = make_aware(parse_datetime(date_time_string), is_dst=False).astimezone(utc) return aware_dt_in_utc.isoformat() diff --git a/tests/test_toulouse_smart.py b/tests/test_toulouse_smart.py index 8adf0382..1649cd85 100644 --- a/tests/test_toulouse_smart.py +++ b/tests/test_toulouse_smart.py @@ -41,6 +41,7 @@ from passerelle.contrib.toulouse_smart.models import ( WcsRequest, WcsRequestFile, ) +from passerelle.contrib.toulouse_smart.utils import localtz_to_utc, utc_to_localtz from tests.test_manager import login TEST_BASE_DIR = os.path.join(os.path.dirname(__file__), 'data', 'toulouse_smart') @@ -130,6 +131,13 @@ def get_media_file(filename): return desc.read() +def test_save_daylight_time_change(settings): + settings.TIME_ZONE = 'Europe/Paris' + settings.USE_TZ = True + assert localtz_to_utc('2022-10-30T02:19:48') == '2022-10-30T01:19:48+00:00' + assert utc_to_localtz('2022-10-30T01:19:48+00:00') == '2022-10-30T02:19:48' + + @mock_response(['/v1/type-intervention', None, b'']) def test_empty_intervention_types(smart): assert smart.get_intervention_types() == []