itests: add another bunch of tests
This commit is contained in:
55
itests/test_mam.py
Normal file
55
itests/test_mam.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import unittest
|
||||
from random import randint
|
||||
from slixmpp import JID
|
||||
from slixmpp.test.integration import SlixIntegration
|
||||
|
||||
|
||||
class TestMAM(SlixIntegration):
|
||||
async def asyncSetUp(self):
|
||||
await super().asyncSetUp()
|
||||
self.add_client(
|
||||
self.envjid('CI_ACCOUNT1'),
|
||||
self.envstr('CI_ACCOUNT1_PASSWORD'),
|
||||
)
|
||||
self.add_client(
|
||||
self.envjid('CI_ACCOUNT2'),
|
||||
self.envstr('CI_ACCOUNT2_PASSWORD'),
|
||||
)
|
||||
self.register_plugins(['xep_0313'])
|
||||
await self.connect_clients()
|
||||
|
||||
async def test_mam_retrieve(self):
|
||||
"""Make sure we can get messages from our archive"""
|
||||
# send messages first
|
||||
tok = randint(1, 999999)
|
||||
self.clients[0].make_message(mto=self.clients[1].boundjid, mbody='coucou').send()
|
||||
await self.clients[1].wait_until('message')
|
||||
self.clients[1].make_message(
|
||||
mto=self.clients[0].boundjid,
|
||||
mbody='coucou coucou %s' % tok,
|
||||
).send()
|
||||
await self.clients[0].wait_until('message')
|
||||
|
||||
# Get archive
|
||||
retrieve = self.clients[0]['xep_0313'].retrieve(
|
||||
with_jid=JID(self.envjid('CI_ACCOUNT2')),
|
||||
iterator=True,
|
||||
reverse=True,
|
||||
rsm={'max': 2}
|
||||
)
|
||||
msgs = []
|
||||
count = 0
|
||||
async for rsm in retrieve:
|
||||
for msg in rsm['mam']['results']:
|
||||
msgs.append(
|
||||
msg['mam_result']['forwarded']['stanza']
|
||||
)
|
||||
count += 1
|
||||
if count >= 2:
|
||||
break
|
||||
|
||||
self.assertEqual(msgs[0]['body'], 'coucou')
|
||||
self.assertEqual(msgs[1]['body'], 'coucou coucou %s' % tok)
|
||||
|
||||
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(TestMAM)
|
||||
Reference in New Issue
Block a user