def asyncio_sleep(monkeypatch, sleep_queues): """Requests.get() mocked to return {'mock_key':'mock_response'}.""" mock = CoroutineMock() monkeypatch.setattr(asyncio, "sleep", mock) async def sleeper(delay: float): await make_queue_waiter(sleep_queues[delay].called, sleep_queues[delay].results)(delay) mock.side_effect = sleeper return mock
async def test_reload_config_multiple(self, mock_bot, mock_reload): async def wait(*args): await asyncio.sleep(0.2) async def call_0(): return await reload.reload_config(self.send) async def call_1(): await asyncio.sleep(0.1) return await reload.reload_config(self.send) module = Mock() originalConfig = mock_bot.config mock_read = CoroutineMock() mock_bot._config.BotConfig.return_value.read_config = mock_read sys.modules = {'bot._config': module} mock_read.side_effect = wait self.assertEqual(await asyncio.gather(call_0(), call_1()), [True, True]) self.assertEqual(self.send.call_count, 2) self.assertEqual(mock_reload.call_count, 1) mock_bot._config.BotConfig.assert_called_once_with() mock_read.assert_called_once_with() self.assertNotEqual(mock_bot.config, originalConfig)