import dateutil import pytest from notifications_utils.timezones import utc_string_to_aware_gmt_datetime @pytest.mark.parametrize( ("input_value", "expectation"), [ ("foo", pytest.raises(dateutil.parser._parser.ParserError)), (100, pytest.raises(TypeError)), (True, pytest.raises(TypeError)), (False, pytest.raises(TypeError)), (None, pytest.raises(TypeError)), ], ) def test_utc_string_to_aware_gmt_datetime_rejects_bad_input(input_value, expectation): with expectation: utc_string_to_aware_gmt_datetime(input_value) @pytest.mark.parametrize( ("naive_time", "expected_aware_hour"), [ ("2000-12-1 20:01", "15:01"), ("2000-06-1 20:01", "16:01"), ], ) def test_utc_string_to_aware_gmt_datetime_handles_summer_and_winter( naive_time, expected_aware_hour, ): assert ( utc_string_to_aware_gmt_datetime(naive_time).strftime("%H:%M") == expected_aware_hour )