diff options
author | mathieui <mathieui@mathieui.net> | 2020-12-04 18:45:06 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2020-12-04 19:45:05 +0100 |
commit | fdb0749cd14ea9480687d5e243ec8fc81731e4dd (patch) | |
tree | 877fb9817438061c77b92e6a27e3a920a983eea2 | |
parent | 2c523d1a3b6a97b78b5ee4d688f33fccd71eb83c (diff) | |
download | slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.gz slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.bz2 slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.tar.xz slixmpp-fdb0749cd14ea9480687d5e243ec8fc81731e4dd.zip |
XEP-0422,0424,0425,0439: Add basic stanza tests
-rw-r--r-- | tests/test_stanza_xep_0422.py | 33 | ||||
-rw-r--r-- | tests/test_stanza_xep_0424.py | 39 | ||||
-rw-r--r-- | tests/test_stanza_xep_0425.py | 47 | ||||
-rw-r--r-- | tests/test_stanza_xep_0439.py | 57 |
4 files changed, 176 insertions, 0 deletions
diff --git a/tests/test_stanza_xep_0422.py b/tests/test_stanza_xep_0422.py new file mode 100644 index 00000000..9d2cc396 --- /dev/null +++ b/tests/test_stanza_xep_0422.py @@ -0,0 +1,33 @@ +import unittest +from slixmpp import Message +from slixmpp.test import SlixTest +from slixmpp.xmlstream import ET +from slixmpp.plugins.xep_0422 import stanza + + +class TestFastening(SlixTest): + + def setUp(self): + stanza.register_plugins() + + def testFastenExternal(self): + message = Message() + message['apply_to']['id'] = 'some-id' + message['apply_to'].xml.append( + ET.fromstring('<test xmlns="urn:tmp:test">Test</test>') + ) + message['apply_to']['external']['name'] = 'body' + message['body'] = 'Toto' + + self.check(message, """ +<message> + <apply-to xmlns="urn:xmpp:fasten:0" id="some-id"> + <test xmlns="urn:tmp:test">Test</test> + <external name='body'/> + </apply-to> + <body>Toto</body> +</message> + """, use_values=False) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestFastening) diff --git a/tests/test_stanza_xep_0424.py b/tests/test_stanza_xep_0424.py new file mode 100644 index 00000000..c94ed79b --- /dev/null +++ b/tests/test_stanza_xep_0424.py @@ -0,0 +1,39 @@ +import unittest +from slixmpp import Message +from slixmpp.test import SlixTest +from slixmpp.plugins.xep_0424 import stanza + + +class TestRetraction(SlixTest): + + def setUp(self): + stanza.register_plugins() + + def testRetract(self): + message = Message() + message['apply_to']['id'] = 'some-id' + message['apply_to']['retract'] + + self.check(message, """ +<message> + <apply-to xmlns="urn:xmpp:fasten:0" id="some-id"> + <retract xmlns="urn:xmpp:message-retract:0"/> + </apply-to> +</message> + """, use_values=False) + + def testRetracted(self): + message = Message() + message['retracted']['stamp'] = '2019-09-20T23:09:32Z' + message['retracted']['origin_id']['id'] = 'originid' + + self.check(message, """ +<message> + <retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0"> + <origin-id xmlns="urn:xmpp:sid:0" id="originid"/> + </retracted> +</message> + """) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestRetraction) diff --git a/tests/test_stanza_xep_0425.py b/tests/test_stanza_xep_0425.py new file mode 100644 index 00000000..96d979e8 --- /dev/null +++ b/tests/test_stanza_xep_0425.py @@ -0,0 +1,47 @@ +import unittest +from slixmpp import Message, Iq, JID +from slixmpp.test import SlixTest +from slixmpp.plugins.xep_0425 import stanza + + +class TestModeration(SlixTest): + + def setUp(self): + stanza.register_plugins() + + def testModerate(self): + iq = Iq() + iq['type'] = 'set' + iq['id'] = 'a' + iq['apply_to']['id'] = 'some-id' + iq['apply_to']['moderate'].enable('retract') + iq['apply_to']['moderate']['reason'] = 'R' + + self.check(iq, """ +<iq type='set' id='a'> + <apply-to id="some-id" xmlns="urn:xmpp:fasten:0"> + <moderate xmlns='urn:xmpp:message-moderate:0'> + <retract xmlns='urn:xmpp:message-retract:0'/> + <reason>R</reason> + </moderate> + </apply-to> +</iq> + """, use_values=False) + + def testModerated(self): + message = Message() + message['moderated']['by'] = JID('toto@titi') + message['moderated']['retracted']['stamp'] = '2019-09-20T23:09:32Z' + message['moderated']['reason'] = 'R' + + self.check(message, """ +<message> + <moderated xmlns="urn:xmpp:message-moderate:0" by="toto@titi"> + <retracted stamp="2019-09-20T23:09:32Z" xmlns="urn:xmpp:message-retract:0" /> + <reason>R</reason> + </moderated> +</message> + """) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestModeration) diff --git a/tests/test_stanza_xep_0439.py b/tests/test_stanza_xep_0439.py new file mode 100644 index 00000000..fbd3aa47 --- /dev/null +++ b/tests/test_stanza_xep_0439.py @@ -0,0 +1,57 @@ +import unittest +from slixmpp import Message +from slixmpp.test import SlixTest +from slixmpp.plugins.xep_0439 import stanza + + +class TestQuickResponse(SlixTest): + + def setUp(self): + stanza.register_plugins() + + def testResponse(self): + message = Message() + message['body'] = 'Reply 1 or 2?' + for (value, label) in [('1', 'Rep 1'), ('2', 'Rep 2')]: + rep = stanza.Response() + rep['value'] = value + rep['label'] = label + message.append(rep) + + self.check(message, """ +<message> + <body>Reply 1 or 2?</body> + <response xmlns="urn:xmpp:tmp:quick-response" value="1" label="Rep 1" /> + <response xmlns="urn:xmpp:tmp:quick-response" value="2" label="Rep 2" /> +</message> + """, use_values=False) + + def testAction(self): + message = Message() + message['body'] = 'action 1 or 2?' + for (id_, label) in [('1', 'action 1'), ('2', 'action 2')]: + act = stanza.Action() + act['id'] = id_ + act['label'] = label + message.append(act) + + self.check(message, """ +<message> + <body>action 1 or 2?</body> + <action xmlns="urn:xmpp:tmp:quick-response" id="1" label="action 1" /> + <action xmlns="urn:xmpp:tmp:quick-response" id="2" label="action 2" /> +</message> + """, use_values=False) + + def testActionSelected(self): + message = Message() + message['action_selected']['id'] = 'act1' + + self.check(message, """ +<message> + <action-selected xmlns="urn:xmpp:tmp:quick-response" id="act1" /> +</message> + """, use_values=False) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestQuickResponse) |