Skip to content

Commit e0b43c4

Browse files
committed
refactor iop code to support multi-sync requests
1 parent 8a4c137 commit e0b43c4

File tree

1 file changed

+51
-3
lines changed

1 file changed

+51
-3
lines changed

src/tests/test_iop_business_host.py

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,51 @@
11
import pickle
2+
import asyncio
3+
import iris
24
import codecs
35
from datetime import datetime, date, time
46
from unittest.mock import MagicMock
57

68
from iop._business_host import _BusinessHost
79

8-
from iop import Message
9-
1010
from registerFilesIop.message import TestSimpleMessage, TestSimpleMessageNotMessage, TestSimpleMessageNotDataclass, TestPickledMessage, FullMessage, PostMessage, MyResponse
1111

1212
from registerFilesIop.obj import PostClass
1313

1414
from registerFilesIop.bs import RedditService
15+
from registerFilesIop.bo import FileOperation
16+
17+
def test_send_request_async_ng():
18+
bh = _BusinessHost()
19+
bh.iris_handle = MagicMock()
20+
bh.iris_handle.dispatchSendRequestAsyncNG = MagicMock()
21+
bh.iris_handle.dispatchIsRequestDone.return_value = 2
22+
bh._dispatch_deserializer = MagicMock()
23+
bh._dispatch_deserializer.return_value = MyResponse(value='test')
24+
result = bh.send_request_async_ng('test', TestSimpleMessage(integer=1, string='test'))
25+
assert asyncio.iscoroutine(result)
26+
assert asyncio.run(result) == MyResponse(value='test')
27+
28+
def test_send_multi_request_sync():
29+
bh = _BusinessHost()
30+
bh.iris_handle = MagicMock()
31+
bh.iris_handle.dispatchSendRequestSyncMultiple = MagicMock()
32+
rsp = iris.cls("Ens.CallStructure")._New()
33+
rsp.Response = MyResponse(value='test')
34+
rsp.ResponseCode = 1
35+
bh.iris_handle.dispatchSendRequestSyncMultiple.return_value = [rsp]
36+
result = bh.send_multi_request_sync([('test', TestSimpleMessage(integer=1, string='test'))])
37+
assert result == [('test', TestSimpleMessage(integer=1, string='test'),MyResponse(value='test'),1)]
38+
39+
def test_dispatch_message():
40+
bs = FileOperation()
41+
bs.PutLine = MagicMock()
42+
bs.Limit = 1
43+
bs.on_init()
44+
bs._dispach_message(PostMessage(Post=PostClass(Title='test', Selftext='test',
45+
Url='test', Author='test', CreatedUTC=1.1, OriginalJSON='test'),
46+
Found='True', ToEmailAddress='test'))
47+
assert True
48+
1549

1650
def test_dispatch_serializer():
1751
bh = _BusinessHost()
@@ -63,6 +97,19 @@ def test_serialize_message_not_dataclass():
6397
except Exception as e:
6498
assert type(e) == TypeError
6599

100+
def test_serialize_message_string():
101+
bh = _BusinessHost()
102+
msg = 'test'
103+
104+
# Mock iris_handler
105+
bh.iris_handle = MagicMock()
106+
107+
# expect an error
108+
try:
109+
bh.send_request_sync(target='test', request=msg)
110+
except Exception as e:
111+
assert type(e) == TypeError
112+
66113
def test_serialize_message_not_message():
67114
bh = _BusinessHost()
68115
msg = TestSimpleMessageNotMessage()
@@ -202,4 +249,5 @@ def test_dispatch_on_get_connections():
202249
_list_len = _list.__len__()
203250
for i in range(0, _list_len):
204251
print(_list.__getitem__(i))
205-
assert len(_list) == 1
252+
assert len(_list) == 1
253+

0 commit comments

Comments
 (0)