From aaab58d229379492e4a2d5c9972db793662a29da Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
Date: Fri, 30 Apr 2021 19:28:12 +0200
Subject: itests: add a simple slow filter test

---
 itests/test_slow_filters.py | 49 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 itests/test_slow_filters.py

diff --git a/itests/test_slow_filters.py b/itests/test_slow_filters.py
new file mode 100644
index 00000000..254a6b03
--- /dev/null
+++ b/itests/test_slow_filters.py
@@ -0,0 +1,49 @@
+import asyncio
+import unittest
+from slixmpp.test.integration import SlixIntegration
+from slixmpp import Message
+
+
+class TestSlowFilter(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'),
+        )
+        await self.connect_clients()
+
+    async def test_filters(self):
+        """Make sure filters work"""
+        def add_a(stanza):
+            if isinstance(stanza, Message):
+                stanza['body'] = stanza['body'] + ' a'
+            return stanza
+
+        async def add_b(stanza):
+            if isinstance(stanza, Message):
+                stanza['body'] = stanza['body'] + ' b'
+            return stanza
+
+        async def add_c_wait(stanza):
+            if isinstance(stanza, Message):
+                await asyncio.sleep(2)
+                stanza['body'] = stanza['body'] + ' c'
+            return stanza
+        self.clients[0].add_filter('out', add_a)
+        self.clients[0].add_filter('out', add_b)
+        self.clients[0].add_filter('out', add_c_wait)
+        body = 'Msg body'
+        msg = self.clients[0].make_message(
+            mto=self.clients[1].boundjid, mbody=body,
+        )
+        msg.send()
+        message = await self.clients[1].wait_until('message')
+        self.assertEqual(message['body'], body + ' a b c')
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestSlowFilter)
-- 
cgit v1.2.3