Skip to content

Commit 673b93f

Browse files
committed
_dispatch_serializer handle null case
1 parent 2464b57 commit 673b93f

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/grongier/pex/_business_host.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ def _dispatch_serializer(self,message):
189189
return self._serialize_pickle_message(message)
190190
elif (message is not None and self._is_iris_object_instance(message)):
191191
return message
192+
elif (message is None):
193+
return message
192194
else:
193195
# todo : decorator takes care of all the parameters, so this should never happen
194196
# return message

src/tests/test_business_host.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,38 @@
1515

1616
def test_dispatch_serializer():
1717
bh = _BusinessHost()
18+
message = TestSimpleMessage(integer=1, string='test')
19+
20+
rsp = bh._dispatch_serializer(message)
21+
22+
assert rsp.classname == 'registerFiles.message.TestSimpleMessage'
23+
assert rsp.json == '{"integer": 1, "string": "test"}'
24+
25+
def test_dispatch_serializer_none():
26+
bh = _BusinessHost()
27+
message = None
28+
29+
rsp = bh._dispatch_serializer(message)
30+
31+
assert rsp is None
32+
33+
def test_dispatch_serializer_not_message():
34+
bh = _BusinessHost()
35+
message = TestSimpleMessageNotMessage()
36+
37+
try:
38+
rsp = bh._dispatch_serializer(message)
39+
except Exception as e:
40+
assert type(e) == TypeError
41+
42+
def test_dispatch_serializer_not_dataclass():
43+
bh = _BusinessHost()
44+
message = TestSimpleMessageNotDataclass()
45+
46+
try:
47+
rsp = bh._dispatch_serializer(message)
48+
except Exception as e:
49+
assert type(e) == TypeError
1850

1951
def test_serialize_message_not_dataclass():
2052
bh = _BusinessHost()

0 commit comments

Comments
 (0)