summaryrefslogtreecommitdiff
path: root/itests/test_httpupload.py
diff options
context:
space:
mode:
Diffstat (limited to 'itests/test_httpupload.py')
-rw-r--r--itests/test_httpupload.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/itests/test_httpupload.py b/itests/test_httpupload.py
new file mode 100644
index 00000000..09e85c1d
--- /dev/null
+++ b/itests/test_httpupload.py
@@ -0,0 +1,37 @@
+try:
+ import aiohttp
+except ImportError:
+ aiohttp = None
+import unittest
+from io import BytesIO
+from slixmpp.test.integration import SlixIntegration
+
+
+class TestHTTPUpload(SlixIntegration):
+ async def asyncSetUp(self):
+ await super().asyncSetUp()
+ self.add_client(
+ self.envjid('CI_ACCOUNT1'),
+ self.envstr('CI_ACCOUNT1_PASSWORD'),
+ )
+ self.register_plugins(['xep_0363'])
+ # Minimal data, we do not want to clutter the remote server
+ self.data = b'tototo'
+ await self.connect_clients()
+
+
+ @unittest.skipIf(aiohttp is None, "aiohttp is not installed")
+ async def test_httpupload(self):
+ """Check we can upload a file properly."""
+ url = await self.clients[0]['xep_0363'].upload_file(
+ 'toto.txt',
+ input_file=BytesIO(self.data),
+ size=len(self.data),
+ )
+ async with aiohttp.ClientSession() as session:
+ async with session.get(url) as resp:
+ text = await resp.text()
+ self.assertEqual(text.encode('utf-8'), self.data)
+
+
+suite = unittest.TestLoader().loadTestsFromTestCase(TestHTTPUpload)