From fc170df79621e78935e0feabf0037773b45f12dd Mon Sep 17 00:00:00 2001 From: Iain Samuel McLean Elder Date: Wed, 20 Apr 2022 00:22:49 +0200 Subject: [PATCH] fix(swf_tests): compare tz-aware timestamps (#5039) --- .../test_swf/responses/test_decision_tasks.py | 7 +++-- tests/test_swf/responses/test_timeouts.py | 29 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/tests/test_swf/responses/test_decision_tasks.py b/tests/test_swf/responses/test_decision_tasks.py index 08adfb5a3..6ca249c9e 100644 --- a/tests/test_swf/responses/test_decision_tasks.py +++ b/tests/test_swf/responses/test_decision_tasks.py @@ -1,5 +1,6 @@ from botocore.exceptions import ClientError from datetime import datetime +from dateutil.parser import parse as dtparse from freezegun import freeze_time from time import sleep import sure # noqa # pylint: disable=unused-import @@ -380,7 +381,7 @@ def test_respond_decision_task_completed_with_fail_workflow_execution_boto3(): @mock_swf -@freeze_time("2015-01-01 12:00:00") +@freeze_time("2015-01-01 12:00:00 UTC") def test_respond_decision_task_completed_with_schedule_activity_task_boto3(): client = setup_workflow_boto3() resp = client.poll_for_decision_task( @@ -433,8 +434,8 @@ def test_respond_decision_task_completed_with_schedule_activity_task_boto3(): ) resp["latestActivityTaskTimestamp"].should.be.a(datetime) if not settings.TEST_SERVER_MODE: - ts = resp["latestActivityTaskTimestamp"].strftime("%Y-%m-%d %H:%M:%S") - ts.should.equal("2015-01-01 12:00:00") + ts = resp["latestActivityTaskTimestamp"] + ts.should.equal(dtparse("2015-01-01 12:00:00 UTC")) @mock_swf diff --git a/tests/test_swf/responses/test_timeouts.py b/tests/test_swf/responses/test_timeouts.py index f3172c1da..94ad5d4f8 100644 --- a/tests/test_swf/responses/test_timeouts.py +++ b/tests/test_swf/responses/test_timeouts.py @@ -1,4 +1,5 @@ from datetime import datetime +from dateutil.parser import parse as dtparse from freezegun import freeze_time import sure # noqa # pylint: disable=unused-import from unittest import SkipTest @@ -29,14 +30,14 @@ def test_activity_task_heartbeat_timeout_boto3(): identity="surprise", ) - with freeze_time("2015-01-01 12:04:30"): + with freeze_time("2015-01-01 12:04:30 UTC"): resp = client.get_workflow_execution_history( domain="test-domain", execution={"runId": client.run_id, "workflowId": "uid-abcd1234"}, ) resp["events"][-1]["eventType"].should.equal("ActivityTaskStarted") - with freeze_time("2015-01-01 12:05:30"): + with freeze_time("2015-01-01 12:05:30 UTC"): # => Activity Task Heartbeat timeout reached!! resp = client.get_workflow_execution_history( domain="test-domain", @@ -48,8 +49,8 @@ def test_activity_task_heartbeat_timeout_boto3(): attrs["timeoutType"].should.equal("HEARTBEAT") # checks that event has been emitted at 12:05:00, not 12:05:30 resp["events"][-2]["eventTimestamp"].should.be.a(datetime) - ts = resp["events"][-2]["eventTimestamp"].strftime("%Y-%m-%d %H:%M:%S") - ts.should.equal("2015-01-01 12:05:00") + ts = resp["events"][-2]["eventTimestamp"] + ts.should.equal(dtparse("2015-01-01 12:05:00 UTC")) # Decision Task Start to Close timeout @@ -59,11 +60,11 @@ def test_decision_task_start_to_close_timeout_boto3(): if settings.TEST_SERVER_MODE: raise SkipTest("Unable to manipulate time in ServerMode") - with freeze_time("2015-01-01 12:00:00"): + with freeze_time("2015-01-01 12:00:00 UTC"): client = setup_workflow_boto3() client.poll_for_decision_task(domain="test-domain", taskList={"name": "queue"}) - with freeze_time("2015-01-01 12:04:30"): + with freeze_time("2015-01-01 12:04:30 UTC"): resp = client.get_workflow_execution_history( domain="test-domain", execution={"runId": client.run_id, "workflowId": "uid-abcd1234"}, @@ -74,7 +75,7 @@ def test_decision_task_start_to_close_timeout_boto3(): ["WorkflowExecutionStarted", "DecisionTaskScheduled", "DecisionTaskStarted"] ) - with freeze_time("2015-01-01 12:05:30"): + with freeze_time("2015-01-01 12:05:30 UTC"): # => Decision Task Start to Close timeout reached!! resp = client.get_workflow_execution_history( domain="test-domain", @@ -101,8 +102,8 @@ def test_decision_task_start_to_close_timeout_boto3(): ) # checks that event has been emitted at 12:05:00, not 12:05:30 resp["events"][-2]["eventTimestamp"].should.be.a(datetime) - ts = resp["events"][-2]["eventTimestamp"].strftime("%Y-%m-%d %H:%M:%S") - ts.should.equal("2015-01-01 12:05:00") + ts = resp["events"][-2]["eventTimestamp"] + ts.should.equal(dtparse("2015-01-01 12:05:00 UTC")) # Workflow Execution Start to Close timeout @@ -111,10 +112,10 @@ def test_decision_task_start_to_close_timeout_boto3(): def test_workflow_execution_start_to_close_timeout_boto3(): if settings.TEST_SERVER_MODE: raise SkipTest("Unable to manipulate time in ServerMode") - with freeze_time("2015-01-01 12:00:00"): + with freeze_time("2015-01-01 12:00:00 UTC"): client = setup_workflow_boto3() - with freeze_time("2015-01-01 13:59:30"): + with freeze_time("2015-01-01 13:59:30 UTC"): resp = client.get_workflow_execution_history( domain="test-domain", execution={"runId": client.run_id, "workflowId": "uid-abcd1234"}, @@ -123,7 +124,7 @@ def test_workflow_execution_start_to_close_timeout_boto3(): event_types = [evt["eventType"] for evt in resp["events"]] event_types.should.equal(["WorkflowExecutionStarted", "DecisionTaskScheduled"]) - with freeze_time("2015-01-01 14:00:30"): + with freeze_time("2015-01-01 14:00:30 UTC"): # => Workflow Execution Start to Close timeout reached!! resp = client.get_workflow_execution_history( domain="test-domain", @@ -142,5 +143,5 @@ def test_workflow_execution_start_to_close_timeout_boto3(): attrs.should.equal({"childPolicy": "ABANDON", "timeoutType": "START_TO_CLOSE"}) # checks that event has been emitted at 14:00:00, not 14:00:30 resp["events"][-1]["eventTimestamp"].should.be.a(datetime) - ts = resp["events"][-1]["eventTimestamp"].strftime("%Y-%m-%d %H:%M:%S") - ts.should.equal("2015-01-01 14:00:00") + ts = resp["events"][-1]["eventTimestamp"] + ts.should.equal(dtparse("2015-01-01 14:00:00 UTC"))