async def test_send_agent(test_client): agent = MockedPresenceAgentFactory() future = agent.start(auto_register=False) future.result() agent.stream = MagicMock() agent.stream.send = CoroutineMock() agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" item = Item(jid=JID.fromstr(jid)) agent.presence.roster._update_entry(item) msg = "Hello World" response = await client.post(f"/spade/agent/{jid}/send/", data={"message": msg}) assert str(response.url.relative()) == f"/spade/agent/{jid}/" sent = agent.traces.all()[0] assert sent[1].sent assert sent[1].body == "Hello World" agent.stop().result()
async def test_unsubscribe_agent(test_client): agent = MockedPresenceAgentFactory() future = agent.start(auto_register=False) future.result() agent.client.enqueue = Mock() agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" jid_ = JID.fromstr(jid) item = Item(jid=jid_) agent.presence.roster._update_entry(item) response = await client.get(f"/spade/agent/{jid}/unsubscribe/") assert str(response.url.relative()) == f"/spade/agent/{jid}/" assert agent.client.enqueue.mock_calls arg = agent.client.enqueue.call_args[0][0] assert arg.to == jid_.bare() assert arg.type_ == PresenceType.UNSUBSCRIBE agent.stop().result()
async def test_get_agent(test_client, loop): agent = Agent("jid@server", "password") agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" item = Item(jid=JID.fromstr(jid)) agent.presence.roster._update_entry(item) response = await client.get(f"/spade/agent/{jid}/") response = await response.text() sel = Selector(text=response) assert sel.css("section.content-header > h1::text").get().strip() == jid agent.stop()
async def test_get_agent(test_client): agent = MockedPresenceAgentFactory(jid="jid@server", password="******") future = agent.start(auto_register=False) future.result() agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" item = Item(jid=JID.fromstr(jid)) agent.presence.roster._update_entry(item) response = await client.get(f"/spade/agent/{jid}/") response = await response.text() sel = Selector(text=response) assert sel.css("section.content-header > h1::text").get().strip() == jid agent.stop().result()
async def test_send_agent(test_client, loop): agent = make_connected_agent() agent.stream.send = CoroutineMock() agent.start() agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" item = Item(jid=JID.fromstr(jid)) agent.presence.roster._update_entry(item) msg = "Hello World" response = await client.post(f"/agent/{jid}/send/", data={"message": msg}) assert str(response.url.relative()) == f"/agent/{jid}/" sent = agent.traces.all()[0] assert sent[1].sent assert sent[1].body == "Hello World" agent.stop()
async def test_unsubscribe_agent(test_client, loop): agent = make_connected_agent() agent.aiothread.client.enqueue = Mock() agent.start() agent.web.setup_routes() client = await test_client(agent.web.app) jid = "friend@server" jid_ = JID.fromstr(jid) item = Item(jid=jid_) agent.presence.roster._update_entry(item) response = await client.get(f"/agent/{jid}/unsubscribe/") assert str(response.url.relative()) == f"/agent/{jid}/" assert agent.aiothread.client.enqueue.mock_calls arg = agent.aiothread.client.enqueue.call_args[0][0] assert arg.to == jid_.bare() assert arg.type_ == PresenceType.UNSUBSCRIBE agent.stop()