Skip to content

Commit c86506f

Browse files
committed
fix: use utc timezone for web serialization datetime assertions
1 parent 9abd205 commit c86506f

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

tests/web/serialization_test.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import pytest
88
import json
9-
from datetime import datetime
9+
from datetime import datetime, timezone
1010

1111
from aws_durable_execution_sdk_python_testing.exceptions import (
1212
InvalidParameterValueException,
@@ -404,11 +404,11 @@ def test_serialize_simple_dict():
404404
def test_serialize_datetime():
405405
"""Test serialization of datetime objects."""
406406
serializer = JSONSerializer()
407-
now = datetime(2025, 11, 5, 16, 30, 9, 895000)
407+
now = datetime(2025, 11, 5, 16, 30, 9, 895000, tzinfo=timezone.utc)
408408
data = {"timestamp": now}
409409

410410
result = serializer.to_bytes(data)
411-
expected = b'{"timestamp":1762378209.895}'
411+
expected = b'{"timestamp":1762360209.895}'
412412

413413
assert result == expected
414414
assert isinstance(result, bytes)
@@ -420,7 +420,7 @@ def test_serialize_datetime():
420420
def test_serialize_nested_datetime():
421421
"""Test serialization of nested structures with datetime."""
422422
serializer = JSONSerializer()
423-
now = datetime(2025, 11, 5, 16, 30, 9)
423+
now = datetime(2025, 11, 5, 16, 30, 9, tzinfo=timezone.utc)
424424
data = {
425425
"event": "user_login",
426426
"timestamp": now,
@@ -430,9 +430,9 @@ def test_serialize_nested_datetime():
430430
result = serializer.to_bytes(data)
431431
expected = (
432432
b'{"event":"user_login",'
433-
b'"timestamp":1762378209.0,'
434-
b'"metadata":{"created_at":1762378209.0,'
435-
b'"updated_at":1762378209.0}}'
433+
b'"timestamp":1762360209.0,'
434+
b'"metadata":{"created_at":1762360209.0,'
435+
b'"updated_at":1762360209.0}}'
436436
)
437437

438438
assert result == expected
@@ -445,16 +445,16 @@ def test_serialize_nested_datetime():
445445
def test_serialize_list_with_datetime():
446446
"""Test serialization of list containing datetime."""
447447
serializer = JSONSerializer()
448-
now = datetime(2025, 11, 5, 16, 30, 9)
448+
now = datetime(2025, 11, 5, 16, 30, 9, tzinfo=timezone.utc)
449449
data = {
450450
"events": [{"time": now, "action": "login"}, {"time": now, "action": "logout"}]
451451
}
452452

453453
result = serializer.to_bytes(data)
454454
expected = (
455455
b'{"events":['
456-
b'{"time":1762378209.0,"action":"login"},'
457-
b'{"time":1762378209.0,"action":"logout"}'
456+
b'{"time":1762360209.0,"action":"login"},'
457+
b'{"time":1762360209.0,"action":"logout"}'
458458
b"]}"
459459
)
460460

@@ -468,7 +468,7 @@ def test_serialize_list_with_datetime():
468468
def test_serialize_mixed_types():
469469
"""Test serialization of mixed data types."""
470470
serializer = JSONSerializer()
471-
now = datetime(2025, 11, 5, 16, 30, 9)
471+
now = datetime(2025, 11, 5, 16, 30, 9, tzinfo=timezone.utc)
472472
data = {
473473
"string": "test",
474474
"number": 42,
@@ -487,7 +487,7 @@ def test_serialize_mixed_types():
487487
b'"boolean":true,'
488488
b'"null":null,'
489489
b'"list":[1,2,3],'
490-
b'"datetime":1762378209.0}'
490+
b'"datetime":1762360209.0}'
491491
)
492492

493493
assert result == expected
@@ -546,35 +546,35 @@ def test_serialize_circular_reference_raises_exception():
546546
def test_serialize_datetime_with_microseconds():
547547
"""Test serialization of datetime with microseconds."""
548548
serializer = JSONSerializer()
549-
now = datetime(2025, 11, 5, 16, 30, 9, 123456)
549+
now = datetime(2025, 11, 5, 16, 30, 9, 123456, tzinfo=timezone.utc)
550550
data = {"timestamp": now}
551551

552552
result = serializer.to_bytes(data)
553-
expected = b'{"timestamp":1762378209.123456}'
553+
expected = b'{"timestamp":1762360209.123456}'
554554

555555
assert result == expected
556556

557557

558558
def test_serialize_datetime_without_microseconds():
559559
"""Test serialization of datetime without microseconds."""
560560
serializer = JSONSerializer()
561-
now = datetime(2025, 11, 5, 16, 30, 9)
561+
now = datetime(2025, 11, 5, 16, 30, 9, tzinfo=timezone.utc)
562562
data = {"timestamp": now}
563563

564564
result = serializer.to_bytes(data)
565-
expected = b'{"timestamp":1762378209.0}'
565+
expected = b'{"timestamp":1762360209.0}'
566566

567567
assert result == expected
568568

569569

570570
def test_serialize_multiple_datetimes():
571571
"""Test multiple datetime objects."""
572572
serializer = JSONSerializer()
573-
dt1 = datetime(2025, 1, 1, 0, 0, 0)
574-
dt2 = datetime(2025, 12, 31, 23, 59, 59)
573+
dt1 = datetime(2025, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
574+
dt2 = datetime(2025, 12, 31, 23, 59, 59, tzinfo=timezone.utc)
575575

576576
data = {"start": dt1, "end": dt2}
577577
result = serializer.to_bytes(data)
578-
expected = b'{"start":1735707600.0,"end":1767243599.0}'
578+
expected = b'{"start":1735689600.0,"end":1767225599.0}'
579579

580580
assert result == expected

0 commit comments

Comments
 (0)