summaryrefslogtreecommitdiff
path: root/itests/test_mam.py
diff options
context:
space:
mode:
Diffstat (limited to 'itests/test_mam.py')
-rw-r--r--itests/test_mam.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/itests/test_mam.py b/itests/test_mam.py
new file mode 100644
index 00000000..f61bc1e6
--- /dev/null
+++ b/itests/test_mam.py
@@ -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)