From 2c82c25a1d50b4b39be056716504f093d6b3ccd5 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Thu, 14 Aug 2025 12:38:22 -0400 Subject: [PATCH] Fixed timezone conversion --- app/utils/csv.py | 4 ++-- tests/app/utils/test_csv.py | 12 ++++++------ tests/app/utils/test_s3_csv.py | 19 +++++++++++-------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/utils/csv.py b/app/utils/csv.py index e14968020..614033a96 100644 --- a/app/utils/csv.py +++ b/app/utils/csv.py @@ -191,9 +191,9 @@ def convert_report_date_to_preferred_timezone(db_date_str_in_utc): utc_date_obj = utc_date_obj.astimezone(pytz.utc) preferred_timezone = pytz.timezone(get_user_preferred_timezone()) preferred_date_obj = utc_date_obj.astimezone(preferred_timezone) - preferred_tz_created_at = preferred_date_obj.strftime("%Y-%m-%d %I:%M:%S %p") + preferred_tz_created_at = preferred_date_obj.strftime("%Y-%m-%d %H:%M:%S") - return f"{preferred_tz_created_at} {get_user_preferred_timezone()}" + return preferred_tz_created_at def get_user_preferred_timezone(): diff --git a/tests/app/utils/test_csv.py b/tests/app/utils/test_csv.py index db4b6a0ec..cb1e1e474 100644 --- a/tests/app/utils/test_csv.py +++ b/tests/app/utils/test_csv.py @@ -90,14 +90,14 @@ def get_notifications_csv_mock( None, [ "Phone Number,Template,Sent by,Batch File,Carrier Response,Status,Time,Carrier\n", - "8005555555,foo,,,Did not like it,Delivered,1943-04-19 08:00:00 AM US/Eastern,AT&T Mobility\r\n", + "8005555555,foo,,,Did not like it,Delivered,1943-04-19 08:00:00,AT&T Mobility\r\n", ], ), ( "Anne Example", [ "Phone Number,Template,Sent by,Batch File,Carrier Response,Status,Time,Carrier\n", - "8005555555,foo,Anne Example,,Did not like it,Delivered,1943-04-19 08:00:00 AM US/Eastern,AT&T Mobility\r\n", # noqa + "8005555555,foo,Anne Example,,Did not like it,Delivered,1943-04-19 08:00:00,AT&T Mobility\r\n", # noqa ], ), ], @@ -145,7 +145,7 @@ def test_generate_notifications_csv_without_job( "bar.csv", "Did not like it", "Delivered", - "1943-04-19 08:00:00 AM US/Eastern", + "1943-04-19 08:00:00", "AT&T Mobility", ], ), @@ -174,7 +174,7 @@ def test_generate_notifications_csv_without_job( "bar.csv", "Did not like it", "Delivered", - "1943-04-19 08:00:00 AM US/Eastern", + "1943-04-19 08:00:00", "AT&T Mobility", "🐜", "🐝", @@ -206,7 +206,7 @@ def test_generate_notifications_csv_without_job( "bar.csv", "Did not like it", "Delivered", - "1943-04-19 08:00:00 AM US/Eastern", + "1943-04-19 08:00:00", "AT&T Mobility", "🐜,🐜", "🐝,🐝", @@ -385,4 +385,4 @@ def test_get_errors_for_csv( def test_convert_report_date_to_preferred_timezone(): original = "2023-11-16 05:00:00" altered = convert_report_date_to_preferred_timezone(original) - assert altered == "2023-11-16 12:00:00 AM US/Eastern" + assert altered == "2023-11-16 00:00:00" diff --git a/tests/app/utils/test_s3_csv.py b/tests/app/utils/test_s3_csv.py index 3e4afcbee..257ed953a 100644 --- a/tests/app/utils/test_s3_csv.py +++ b/tests/app/utils/test_s3_csv.py @@ -17,7 +17,8 @@ def test_convert_s3_csv_timestamps_with_real_format(): ) as mock_convert: def mock_conversion(timestamp): - return f"{timestamp} US/Eastern" + # Just return the timestamp as-is for testing + return timestamp mock_convert.side_effect = mock_conversion @@ -31,8 +32,8 @@ def test_convert_s3_csv_timestamps_with_real_format(): assert mock_convert.call_count == 2 mock_convert.assert_any_call("2024-03-15 17:19:00") mock_convert.assert_any_call("2024-03-15 20:30:00") - assert "2024-03-15 17:19:00 US/Eastern" in full_result - assert "2024-03-15 20:30:00 US/Eastern" in full_result + assert "2024-03-15 17:19:00" in full_result + assert "2024-03-15 20:30:00" in full_result def test_convert_s3_csv_handles_empty_csv(): @@ -56,7 +57,7 @@ def test_convert_s3_csv_handles_bytes(): with patch( "app.utils.s3_csv.convert_report_date_to_preferred_timezone" ) as mock_convert: - mock_convert.return_value = "2024-01-15 03:30:00 PM US/Eastern" + mock_convert.return_value = "2024-01-15 15:30:00" result = list(convert_s3_csv_timestamps(csv_bytes)) assert len(result) == 2 @@ -73,14 +74,14 @@ def test_convert_s3_csv_handles_malformed_dates(): ) as mock_convert: mock_convert.side_effect = [ Exception("Invalid date"), - "2024-01-15 04:45:00 PM US/Eastern", + "2024-01-15 16:45:00", ] result = list(convert_s3_csv_timestamps(csv_content)) full_result = "".join(result) assert "INVALID_DATE" in full_result - assert "2024-01-15 04:45:00 PM US/Eastern" in full_result + assert "2024-01-15 16:45:00" in full_result def test_finds_time_column_dynamically(): @@ -109,5 +110,7 @@ def test_actual_timezone_conversion(): result = convert_report_date_to_preferred_timezone("2024-01-15 20:30:00") - assert "03:30:00 PM" in result or "15:30:00 PM" in result - assert "US/Eastern" in result + # Should be in 24-hour format without AM/PM or timezone + assert "15:30:00" in result + assert "PM" not in result + assert "US/Eastern" not in result