Esempio n. 1
0
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)