From a8e36574873e86d75a5ca796ce212c10dd3266ff Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Sat, 8 Jan 2011 10:58:47 -0500 Subject: Added new XEP-0059 plugin. Contributed by Erik Reuterborg Larsson (who). --- tests/test_stream_xep_0059.py | 162 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 tests/test_stream_xep_0059.py (limited to 'tests/test_stream_xep_0059.py') diff --git a/tests/test_stream_xep_0059.py b/tests/test_stream_xep_0059.py new file mode 100644 index 00000000..3a99842b --- /dev/null +++ b/tests/test_stream_xep_0059.py @@ -0,0 +1,162 @@ +import threading + +from sleekxmpp.test import * +from sleekxmpp.xmlstream import register_stanza_plugin +from sleekxmpp.plugins.xep_0030 import DiscoItems +from sleekxmpp.plugins.xep_0059 import ResultIterator, Set + + +class TestStreamSet(SleekTest): + + def setUp(self): + register_stanza_plugin(DiscoItems, Set) + + def tearDown(self): + self.stream_close() + + def iter(self, rev=False): + q = self.xmpp.Iq() + q['type'] = 'get' + it = ResultIterator(q, 'disco_items', '1', reverse=rev) + for i in it: + for j in i['disco_items']['items']: + self.items.append(j[0]) + + def testResultIterator(self): + self.items = [] + self.stream_start(mode='client') + t = threading.Thread(target=self.iter) + t.start() + self.send(""" + + + + 1 + + + + """) + self.recv(""" + + + + + item1 + + + + """) + self.send(""" + + + + 1 + item1 + + + + """) + self.recv(""" + + + + + item2 + + + + """) + self.send(""" + + + + 1 + item2 + + + + """) + self.recv(""" + + + + + + + + """) + t.join() + self.failUnless(self.items == ['item1', 'item2']) + + def testResultIteratorReverse(self): + self.items = [] + self.stream_start(mode='client') + + t = threading.Thread(target=self.iter, args=(True,)) + t.start() + + self.send(""" + + + + 1 + + + + + """) + self.recv(""" + + + + + item2 + + + + """) + self.send(""" + + + + 1 + item2 + + + + """) + self.recv(""" + + + + + item1 + + + + """) + self.send(""" + + + + 1 + item1 + + + + """) + self.recv(""" + + + + + + + + """) + + t.join() + self.failUnless(self.items == ['item2', 'item1']) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamSet) -- cgit v1.2.3