Skip to content

Commit af45290

Browse files
committed
fix(tests): remove return values from test functions to fix pytest warnings
Test functions were returning boolean values which caused pytest warnings: 'Test functions should return None'. Updated all test functions to only use assertions without returning values. Updated main() to handle the new pattern with try/except instead of checking return values.
1 parent de9f142 commit af45290

File tree

2 files changed

+50
-79
lines changed

2 files changed

+50
-79
lines changed

test_jsonplus_redis_serializer.py

Lines changed: 49 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,16 @@ def test_human_message_serialization():
1515
serializer = JsonPlusRedisSerializer()
1616
msg = HumanMessage(content="What is the weather?", id="msg-1")
1717

18-
try:
19-
# This would raise TypeError before the fix
20-
serialized = serializer.dumps(msg)
21-
print(f" ✓ Serialized to {len(serialized)} bytes")
22-
23-
# Deserialize
24-
deserialized = serializer.loads(serialized)
25-
assert isinstance(deserialized, HumanMessage)
26-
assert deserialized.content == "What is the weather?"
27-
assert deserialized.id == "msg-1"
28-
print(f" ✓ Deserialized correctly: {deserialized.content}")
18+
# This would raise TypeError before the fix
19+
serialized = serializer.dumps(msg)
20+
print(f" ✓ Serialized to {len(serialized)} bytes")
2921

30-
return True
31-
except TypeError as e:
32-
print(f" ✗ FAILED: {e}")
33-
return False
22+
# Deserialize
23+
deserialized = serializer.loads(serialized)
24+
assert isinstance(deserialized, HumanMessage)
25+
assert deserialized.content == "What is the weather?"
26+
assert deserialized.id == "msg-1"
27+
print(f" ✓ Deserialized correctly: {deserialized.content}")
3428

3529

3630
def test_all_message_types():
@@ -45,16 +39,10 @@ def test_all_message_types():
4539
]
4640

4741
for msg in messages:
48-
try:
49-
serialized = serializer.dumps(msg)
50-
deserialized = serializer.loads(serialized)
51-
assert type(deserialized) == type(msg)
52-
print(f" ✓ {type(msg).__name__} works")
53-
except Exception as e:
54-
print(f" ✗ {type(msg).__name__} FAILED: {e}")
55-
return False
56-
57-
return True
42+
serialized = serializer.dumps(msg)
43+
deserialized = serializer.loads(serialized)
44+
assert type(deserialized) == type(msg)
45+
print(f" ✓ {type(msg).__name__} works")
5846

5947

6048
def test_message_list():
@@ -68,19 +56,13 @@ def test_message_list():
6856
HumanMessage(content="Question 2"),
6957
]
7058

71-
try:
72-
serialized = serializer.dumps(messages)
73-
deserialized = serializer.loads(serialized)
74-
75-
assert isinstance(deserialized, list)
76-
assert len(deserialized) == 3
77-
assert all(isinstance(m, (HumanMessage, AIMessage)) for m in deserialized)
78-
print(f" ✓ List of {len(deserialized)} messages works")
59+
serialized = serializer.dumps(messages)
60+
deserialized = serializer.loads(serialized)
7961

80-
return True
81-
except Exception as e:
82-
print(f" ✗ FAILED: {e}")
83-
return False
62+
assert isinstance(deserialized, list)
63+
assert len(deserialized) == 3
64+
assert all(isinstance(m, (HumanMessage, AIMessage)) for m in deserialized)
65+
print(f" ✓ List of {len(deserialized)} messages works")
8466

8567

8668
def test_nested_structure():
@@ -96,20 +78,14 @@ def test_nested_structure():
9678
"step": 1,
9779
}
9880

99-
try:
100-
serialized = serializer.dumps(state)
101-
deserialized = serializer.loads(serialized)
102-
103-
assert "messages" in deserialized
104-
assert len(deserialized["messages"]) == 2
105-
assert isinstance(deserialized["messages"][0], HumanMessage)
106-
assert isinstance(deserialized["messages"][1], AIMessage)
107-
print(f" ✓ Nested structure works")
81+
serialized = serializer.dumps(state)
82+
deserialized = serializer.loads(serialized)
10883

109-
return True
110-
except Exception as e:
111-
print(f" ✗ FAILED: {e}")
112-
return False
84+
assert "messages" in deserialized
85+
assert len(deserialized["messages"]) == 2
86+
assert isinstance(deserialized["messages"][0], HumanMessage)
87+
assert isinstance(deserialized["messages"][1], AIMessage)
88+
print(f" ✓ Nested structure works")
11389

11490

11591
def test_dumps_typed():
@@ -119,21 +95,15 @@ def test_dumps_typed():
11995
serializer = JsonPlusRedisSerializer()
12096
msg = HumanMessage(content="Test", id="test-123")
12197

122-
try:
123-
type_str, blob = serializer.dumps_typed(msg)
124-
assert type_str == "json"
125-
assert isinstance(blob, str)
126-
print(f" ✓ dumps_typed returns: type='{type_str}', blob={len(blob)} chars")
127-
128-
deserialized = serializer.loads_typed((type_str, blob))
129-
assert isinstance(deserialized, HumanMessage)
130-
assert deserialized.content == "Test"
131-
print(f" ✓ loads_typed works correctly")
98+
type_str, blob = serializer.dumps_typed(msg)
99+
assert type_str == "json"
100+
assert isinstance(blob, str)
101+
print(f" ✓ dumps_typed returns: type='{type_str}', blob={len(blob)} chars")
132102

133-
return True
134-
except Exception as e:
135-
print(f" ✗ FAILED: {e}")
136-
return False
103+
deserialized = serializer.loads_typed((type_str, blob))
104+
assert isinstance(deserialized, HumanMessage)
105+
assert deserialized.content == "Test"
106+
print(f" ✓ loads_typed works correctly")
137107

138108

139109
def test_backwards_compatibility():
@@ -149,16 +119,10 @@ def test_backwards_compatibility():
149119
]
150120

151121
for name, obj in test_cases:
152-
try:
153-
serialized = serializer.dumps(obj)
154-
deserialized = serializer.loads(serialized)
155-
assert deserialized == obj
156-
print(f" ✓ {name} works")
157-
except Exception as e:
158-
print(f" ✗ {name} FAILED: {e}")
159-
return False
160-
161-
return True
122+
serialized = serializer.dumps(obj)
123+
deserialized = serializer.loads(serialized)
124+
assert deserialized == obj
125+
print(f" ✓ {name} works")
162126

163127

164128
def main():
@@ -176,19 +140,25 @@ def main():
176140
test_backwards_compatibility,
177141
]
178142

179-
results = []
143+
passed = 0
144+
failed = 0
180145
for test in tests:
181-
results.append(test())
146+
try:
147+
test()
148+
passed += 1
149+
except Exception as e:
150+
print(f" ✗ {test.__name__} FAILED: {e}")
151+
failed += 1
182152

183153
print("\n" + "=" * 70)
184-
print(f"Results: {sum(results)}/{len(results)} tests passed")
154+
print(f"Results: {passed}/{len(tests)} tests passed")
185155
print("=" * 70)
186156

187-
if all(results):
157+
if failed == 0:
188158
print("\n✅ ALL TESTS PASSED - Fix is working correctly!")
189159
return 0
190160
else:
191-
print("\nSOME TESTS FAILED - Fix may not be working")
161+
print(f"\n{failed} TESTS FAILED - Fix may not be working")
192162
return 1
193163

194164

tests/test_jsonplus_serializer_default_handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import pytest
1212
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage, ToolMessage
13+
1314
from langgraph.checkpoint.redis.jsonplus_redis import JsonPlusRedisSerializer
1415

1516

0 commit comments

Comments
 (0)