async def test_stop(test_client, loop): agent = Agent("jid@server", "password") agent.web.setup_routes() client = await test_client(agent.web.app) response = await client.get("/spade/stop") response = await response.text() sel = Selector(text=response) assert sel.css("div.alert-warning > span::text").get().strip( ) == "Agent is stopping now." with LogCapture() as log: try: await client.get("/spade/stop/now/", timeout=0.0005) except requests.exceptions.ReadTimeout: pass log.check_present( ('spade.Web', 'WARNING', "Stopping agent from web interface.")) counter = 5 while agent.is_alive() and counter > 0: counter -= 0.5 time.sleep(0.5) assert not agent.is_alive()
async def test_stop(test_client): agent = Agent("jid@server", "password") agent.web.setup_routes() client = await test_client(agent.web.app) response = await client.get("/spade/stop") response = await response.text() sel = Selector(text=response) assert sel.css("div.alert-warning > span::text").get().strip() == "Agent is stopping now." with LogCapture() as log: try: await client.get("/spade/stop/now/", timeout=0.0005) except requests.exceptions.ReadTimeout: pass log.check_present(('spade.Web', 'WARNING', "Stopping agent from web interface.")) counter = 5 while agent.is_alive() and counter > 0: counter -= 0.5 time.sleep(0.5) assert not agent.is_alive()
def test_create_agent(mocker): mocker.patch("spade.agent.AioThread.connect") agent = Agent("jid@server", "fake_password") assert agent.is_alive() is False agent.start(auto_register=False) assert agent.is_alive() is True agent.aiothread.connect.assert_called_once() assert agent.stream is None agent.aiothread.conn_coro = mocker.Mock() agent.aiothread.conn_coro.__aexit__ = CoroutineMock() agent.stop() agent.aiothread.conn_coro.__aexit__.assert_called_once() assert agent.is_alive() is False
def test_create_agent(mocker): agent = Agent("jid@server", "fake_password") agent._async_connect = CoroutineMock() assert agent.is_alive() is False future = agent.start(auto_register=False) assert future.result() is None agent._async_connect.assert_called_once() assert agent.stream is None agent.conn_coro = mocker.Mock() agent.conn_coro.__aexit__ = CoroutineMock() assert agent.is_alive() is True future = agent.stop() future.result() agent.conn_coro.__aexit__.assert_called_once() assert agent.is_alive() is False