66
77import pytest
88import json
9- from datetime import datetime
9+ from datetime import datetime , timezone
1010
1111from aws_durable_execution_sdk_python_testing .exceptions import (
1212 InvalidParameterValueException ,
@@ -404,11 +404,11 @@ def test_serialize_simple_dict():
404404def 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():
420420def 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():
445445def 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():
468468def 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():
546546def 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
558558def 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
570570def 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