support batch option in MultiCallSession
This commit is contained in:
parent
78e3f48d8b
commit
37e8afcf8c
2 changed files with 40 additions and 8 deletions
|
|
@ -31,3 +31,25 @@ class TestNewMultiCall(unittest.TestCase):
|
|||
for i in range(10):
|
||||
self.assertEqual(calls[i]['methodName'], "echo")
|
||||
self.assertEqual(calls[i]['params'], (i,))
|
||||
|
||||
def test_batch_multicall(self):
|
||||
with self.session.multicall(batch=10) as m:
|
||||
ret = {}
|
||||
for i in range(42):
|
||||
ret[i] = m.echo(i)
|
||||
|
||||
# should be 5 batches
|
||||
self.assertEqual(self._callMethod.call_count, 5)
|
||||
i = 0
|
||||
for args, kwargs in self._callMethod.call_args_list:
|
||||
self.assertEqual(kwargs, {})
|
||||
self.assertEqual(args[0], 'multiCall')
|
||||
self.assertEqual(args[2], {})
|
||||
_calls = args[1]
|
||||
if not isinstance(_calls, tuple) or len(_calls) != 1:
|
||||
raise Exception('multiCall args not wrapped in singleton')
|
||||
calls = _calls[0]
|
||||
for call in calls:
|
||||
self.assertEqual(call['methodName'], "echo")
|
||||
self.assertEqual(call['params'], (i,))
|
||||
i += 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue