From ad5b61de50ca4fbcc445ceae8db568be6518e66e Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Mon, 30 Apr 2012 11:07:54 -0700 Subject: Add full support for initial payloads with adhoc commands, plus test. --- tests/test_stream_xep_0050.py | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'tests/test_stream_xep_0050.py') diff --git a/tests/test_stream_xep_0050.py b/tests/test_stream_xep_0050.py index 1931349d..373bce64 100644 --- a/tests/test_stream_xep_0050.py +++ b/tests/test_stream_xep_0050.py @@ -1,4 +1,5 @@ import time +import logging import threading from sleekxmpp.test import * @@ -17,6 +18,59 @@ class TestAdHocCommands(SleekTest): def tearDown(self): self.stream_close() + def testInitialPayloadCommand(self): + """Test a command with an initial payload.""" + + class TestPayload(ElementBase): + name = 'foo' + namespace = 'test' + interfaces = set(['bar']) + plugin_attrib = name + + Command = self.xmpp['xep_0050'].stanza.Command + register_stanza_plugin(Command, TestPayload, iterable=True) + + def handle_command(iq, session): + initial = session['payload'] + logging.debug(initial) + new_payload = TestPayload() + if initial: + new_payload['bar'] = 'Received: %s' % initial[0]['bar'] + else: + new_payload['bar'] = 'Failed' + + logging.debug(initial) + + session['payload'] = new_payload + session['next'] = None + session['has_next'] = False + + return session + + self.xmpp['xep_0050'].add_command('tester@localhost', 'foo', + 'Do Foo', handle_command) + + self.recv(""" + + + + + + """) + + self.send(""" + + + + + + """) + def testZeroStepCommand(self): """Test running a command with no steps.""" -- cgit v1.2.3