Beispiel #1
0
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()
Beispiel #2
0
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()
Beispiel #3
0
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()
Beispiel #4
0
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()
Beispiel #5
0
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()
Beispiel #6
0
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()