generated from daniil-berg/boilerplate-py
made start
"non-async" using meta task
This commit is contained in:
@ -711,25 +711,42 @@ class SimpleTaskPoolTestCase(CommonTestCase):
|
||||
self.assertEqual(self.TEST_POOL_FUNC.__name__, self.task_pool.func_name)
|
||||
|
||||
@patch.object(pool.SimpleTaskPool, '_start_task')
|
||||
async def test__start_one(self, mock__start_task: AsyncMock):
|
||||
mock__start_task.return_value = expected_output = 99
|
||||
self.task_pool._func = MagicMock(return_value=BAR)
|
||||
async def test__start_num(self, mock__start_task: AsyncMock):
|
||||
fake_coroutine = object()
|
||||
self.task_pool._func = MagicMock(return_value=fake_coroutine)
|
||||
num = 3
|
||||
group_name = FOO + BAR + 'abc'
|
||||
output = await self.task_pool._start_one(group_name)
|
||||
self.assertEqual(expected_output, output)
|
||||
self.task_pool._func.assert_called_once_with(*self.task_pool._args, **self.task_pool._kwargs)
|
||||
mock__start_task.assert_awaited_once_with(BAR, group_name=group_name, end_callback=self.task_pool._end_callback,
|
||||
cancel_callback=self.task_pool._cancel_callback)
|
||||
self.assertIsNone(await self.task_pool._start_num(num, group_name))
|
||||
self.task_pool._func.assert_has_calls(num * [
|
||||
call(*self.task_pool._args, **self.task_pool._kwargs)
|
||||
])
|
||||
mock__start_task.assert_has_awaits(num * [
|
||||
call(fake_coroutine, group_name=group_name, end_callback=self.task_pool._end_callback,
|
||||
cancel_callback=self.task_pool._cancel_callback)
|
||||
])
|
||||
|
||||
@patch.object(pool.SimpleTaskPool, '_start_one')
|
||||
async def test_start(self, mock__start_one: AsyncMock):
|
||||
mock__start_one.return_value = FOO
|
||||
@patch.object(pool, 'create_task')
|
||||
@patch.object(pool.SimpleTaskPool, '_start_num', new_callable=MagicMock())
|
||||
@patch.object(pool, 'TaskGroupRegister')
|
||||
@patch.object(pool.BaseTaskPool, '_check_start')
|
||||
def test_start(self, mock__check_start: MagicMock, mock_reg_cls: MagicMock, mock__start_num: AsyncMock,
|
||||
mock_create_task: MagicMock):
|
||||
mock_group_reg = set_up_mock_group_register(mock_reg_cls)
|
||||
mock__start_num.return_value = mock_start_num_coroutine = object()
|
||||
mock_create_task.return_value = fake_task = object()
|
||||
self.task_pool._task_groups = {}
|
||||
self.task_pool._group_meta_tasks_running = {}
|
||||
num = 5
|
||||
self.task_pool._start_calls = 42
|
||||
output = await self.task_pool.start(num)
|
||||
expected_output = 'start-group-42'
|
||||
self.assertEqual(expected_output, output)
|
||||
mock__start_one.assert_has_awaits(num * [call(expected_output)])
|
||||
expected_group_name = 'start-group-42'
|
||||
output = self.task_pool.start(num)
|
||||
self.assertEqual(expected_group_name, output)
|
||||
mock__check_start.assert_called_once_with(function=self.TEST_POOL_FUNC)
|
||||
self.assertEqual(43, self.task_pool._start_calls)
|
||||
self.assertEqual(mock_group_reg, self.task_pool._task_groups[expected_group_name])
|
||||
mock__start_num.assert_called_once_with(num, expected_group_name)
|
||||
mock_create_task.assert_called_once_with(mock_start_num_coroutine)
|
||||
self.assertSetEqual({fake_task}, self.task_pool._group_meta_tasks_running[expected_group_name])
|
||||
|
||||
@patch.object(pool.SimpleTaskPool, 'cancel')
|
||||
def test_stop(self, mock_cancel: MagicMock):
|
||||
|
Reference in New Issue
Block a user