@@ -15,12 +15,12 @@ def test_human_message_serialization():
1515 serializer = JsonPlusRedisSerializer ()
1616 msg = HumanMessage (content = "What is the weather?" , id = "msg-1" )
1717
18- # This would raise TypeError before the fix
19- serialized = serializer .dumps (msg )
20- print (f" ✓ Serialized to { len (serialized )} bytes" )
18+ # Checkpoint 3.0: Use dumps_typed instead of dumps
19+ type_str , serialized = serializer .dumps_typed (msg )
20+ print (f" ✓ Serialized to { len (serialized )} bytes (type: { type_str } ) " )
2121
2222 # Deserialize
23- deserialized = serializer .loads ( serialized )
23+ deserialized = serializer .loads_typed (( type_str , serialized ) )
2424 assert isinstance (deserialized , HumanMessage )
2525 assert deserialized .content == "What is the weather?"
2626 assert deserialized .id == "msg-1"
@@ -39,8 +39,8 @@ def test_all_message_types():
3939 ]
4040
4141 for msg in messages :
42- serialized = serializer .dumps (msg )
43- deserialized = serializer .loads ( serialized )
42+ type_str , serialized = serializer .dumps_typed (msg )
43+ deserialized = serializer .loads_typed (( type_str , serialized ) )
4444 assert type (deserialized ) == type (msg )
4545 print (f" ✓ { type (msg ).__name__ } works" )
4646
@@ -56,8 +56,8 @@ def test_message_list():
5656 HumanMessage (content = "Question 2" ),
5757 ]
5858
59- serialized = serializer .dumps (messages )
60- deserialized = serializer .loads ( serialized )
59+ type_str , serialized = serializer .dumps_typed (messages )
60+ deserialized = serializer .loads_typed (( type_str , serialized ) )
6161
6262 assert isinstance (deserialized , list )
6363 assert len (deserialized ) == 3
@@ -78,8 +78,8 @@ def test_nested_structure():
7878 "step" : 1 ,
7979 }
8080
81- serialized = serializer .dumps (state )
82- deserialized = serializer .loads ( serialized )
81+ type_str , serialized = serializer .dumps_typed (state )
82+ deserialized = serializer .loads_typed (( type_str , serialized ) )
8383
8484 assert "messages" in deserialized
8585 assert len (deserialized ["messages" ]) == 2
@@ -97,8 +97,9 @@ def test_dumps_typed():
9797
9898 type_str , blob = serializer .dumps_typed (msg )
9999 assert type_str == "json"
100- assert isinstance (blob , str )
101- print (f" ✓ dumps_typed returns: type='{ type_str } ', blob={ len (blob )} chars" )
100+ # Checkpoint 3.0: blob is now bytes, not str
101+ assert isinstance (blob , bytes )
102+ print (f" ✓ dumps_typed returns: type='{ type_str } ', blob={ len (blob )} bytes" )
102103
103104 deserialized = serializer .loads_typed ((type_str , blob ))
104105 assert isinstance (deserialized , HumanMessage )
@@ -119,8 +120,8 @@ def test_backwards_compatibility():
119120 ]
120121
121122 for name , obj in test_cases :
122- serialized = serializer .dumps (obj )
123- deserialized = serializer .loads ( serialized )
123+ type_str , serialized = serializer .dumps_typed (obj )
124+ deserialized = serializer .loads_typed (( type_str , serialized ) )
124125 assert deserialized == obj
125126 print (f" ✓ { name } works" )
126127
0 commit comments