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_stanza_xep_0059.py | 106 +++++++++++++++++++++++++++ tests/test_stream_xep_0059.py | 162 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100644 tests/test_stanza_xep_0059.py create mode 100644 tests/test_stream_xep_0059.py (limited to 'tests') diff --git a/tests/test_stanza_xep_0059.py b/tests/test_stanza_xep_0059.py new file mode 100644 index 00000000..913436a6 --- /dev/null +++ b/tests/test_stanza_xep_0059.py @@ -0,0 +1,106 @@ +from sleekxmpp.test import * +from sleekxmpp.plugins.xep_0059 import Set + + +class TestSetStanzas(SleekTest): + + def testSetFirstIndex(self): + s = Set() + s['first'] = 'id' + s.set_first_index('10') + self.check(s, """ + + id + + """) + + def testGetFirstIndex(self): + xml_string = """ + + id + + """ + s = Set(ET.fromstring(xml_string)) + expected = '10' + self.failUnless(s['first_index'] == expected) + + def testDelFirstIndex(self): + xml_string = """ + + id + + """ + s = Set(ET.fromstring(xml_string)) + del s['first_index'] + self.check(s, """ + + id + + """) + + def testSetBefore(self): + s = Set() + s['before'] = True + self.check(s, """ + + + + """) + + def testGetBefore(self): + xml_string = """ + + + + """ + s = Set(ET.fromstring(xml_string)) + expected = True + self.failUnless(s['before'] == expected) + + def testGetBefore(self): + xml_string = """ + + + + """ + s = Set(ET.fromstring(xml_string)) + del s['before'] + self.check(s, """ + + + """) + + def testSetBeforeVal(self): + s = Set() + s['before'] = 'id' + self.check(s, """ + + id + + """) + + def testGetBeforeVal(self): + xml_string = """ + + id + + """ + s = Set(ET.fromstring(xml_string)) + expected = 'id' + self.failUnless(s['before'] == expected) + + def testGetBeforeVal(self): + xml_string = """ + + id + + """ + s = Set(ET.fromstring(xml_string)) + del s['before'] + self.check(s, """ + + + """) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestSetStanzas) 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