diff options
Diffstat (limited to 'tests/test_stream_xep_0092.py')
-rw-r--r-- | tests/test_stream_xep_0092.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_stream_xep_0092.py b/tests/test_stream_xep_0092.py new file mode 100644 index 00000000..4a038558 --- /dev/null +++ b/tests/test_stream_xep_0092.py @@ -0,0 +1,69 @@ +import threading + +from sleekxmpp.test import * + + +class TestStreamSet(SleekTest): + + def tearDown(self): + self.stream_close() + + def testHandleSoftwareVersionRequest(self): + self.stream_start(mode='client', plugins=['xep_0030', 'xep_0092']) + + self.xmpp['xep_0092'].name = 'SleekXMPP' + self.xmpp['xep_0092'].version = 'dev' + self.xmpp['xep_0092'].os = 'Linux' + + self.recv(""" + <iq type="get" id="1"> + <query xmlns="jabber:iq:version" /> + </iq> + """) + + self.send(""" + <iq type="result" id="1"> + <query xmlns="jabber:iq:version"> + <name>SleekXMPP</name> + <version>dev</version> + <os>Linux</os> + </query> + </iq> + """) + + def testMakeSoftwareVersionRequest(self): + results = [] + + def query(): + r = self.xmpp['xep_0092'].get_version('foo@bar') + results.append(r) + + self.stream_start(mode='client', plugins=['xep_0030', 'xep_0092']) + + t = threading.Thread(target=query) + t.start() + + self.send(""" + <iq type="get" id="1" to="foo@bar"> + <query xmlns="jabber:iq:version" /> + </iq> + """) + + self.recv(""" + <iq type="result" id="1" from="foo@bar" to="tester@localhost"> + <query xmlns="jabber:iq:version"> + <name>Foo</name> + <version>1.0</version> + <os>Linux</os> + </query> + </iq> + """) + + t.join() + + expected = [{'name': 'Foo', 'version': '1.0', 'os':'Linux'}] + self.assertEqual(results, expected, + "Did not receive expected results: %s" % results) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamSet) |