From 37b571c55ab00b3107a480027f0ba212831bf7ed Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Wed, 21 Apr 2010 23:51:37 -0700 Subject: added pubsub#event stanzas, multi-subtypes iterable stanzas, pubsub#event test coverage --- tests/test_pubsubstanzas.py | 127 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) (limited to 'tests') diff --git a/tests/test_pubsubstanzas.py b/tests/test_pubsubstanzas.py index 2d1bf3b7..5353f907 100644 --- a/tests/test_pubsubstanzas.py +++ b/tests/test_pubsubstanzas.py @@ -1,6 +1,7 @@ import unittest from xml.etree import cElementTree as ET from sleekxmpp.xmlstream.matcher.stanzapath import StanzaPath +from . import xmlcompare class testpubsubstanzas(unittest.TestCase): @@ -169,4 +170,130 @@ class testpubsubstanzas(unittest.TestCase): config = iq['pubsub']['configure']['config'] self.failUnless(config.getValues() != {}) + def testItemEvent(self): + """Testing message/pubsub_event/items/item""" + msg = self.ps.Message() + item = self.ps.EventItem() + pl = ET.Element('{http://netflint.net/protocol/test}test', {'failed':'3', 'passed':'24'}) + item['payload'] = pl + item['id'] = 'abc123' + msg['pubsub_event']['items'].append(item) + msg['pubsub_event']['items']['node'] = 'cheese' + msg['type'] = 'normal' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testItemsEvent(self): + """Testing multiple message/pubsub_event/items/item""" + msg = self.ps.Message() + item = self.ps.EventItem() + item2 = self.ps.EventItem() + pl = ET.Element('{http://netflint.net/protocol/test}test', {'failed':'3', 'passed':'24'}) + pl2 = ET.Element('{http://netflint.net/protocol/test-other}test', {'total':'27', 'failed':'3'}) + item2['payload'] = pl2 + item['payload'] = pl + item['id'] = 'abc123' + item2['id'] = '123abc' + msg['pubsub_event']['items'].append(item) + msg['pubsub_event']['items'].append(item2) + msg['pubsub_event']['items']['node'] = 'cheese' + msg['type'] = 'normal' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testItemsEvent(self): + """Testing message/pubsub_event/items/item & retract mix""" + msg = self.ps.Message() + item = self.ps.EventItem() + item2 = self.ps.EventItem() + pl = ET.Element('{http://netflint.net/protocol/test}test', {'failed':'3', 'passed':'24'}) + pl2 = ET.Element('{http://netflint.net/protocol/test-other}test', {'total':'27', 'failed':'3'}) + item2['payload'] = pl2 + retract = self.ps.EventRetract() + retract['id'] = 'aabbcc' + item['payload'] = pl + item['id'] = 'abc123' + item2['id'] = '123abc' + msg['pubsub_event']['items'].append(item) + msg['pubsub_event']['items'].append(retract) + msg['pubsub_event']['items'].append(item2) + msg['pubsub_event']['items']['node'] = 'cheese' + msg['type'] = 'normal' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testCollectionAssociate(self): + """Testing message/pubsub_event/collection/associate""" + msg = self.ps.Message() + msg['pubsub_event']['collection']['associate']['node'] = 'cheese' + msg['pubsub_event']['collection']['node'] = 'cheeseburger' + msg['type'] = 'headline' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testCollectionDisassociate(self): + """Testing message/pubsub_event/collection/disassociate""" + msg = self.ps.Message() + msg['pubsub_event']['collection']['disassociate']['node'] = 'cheese' + msg['pubsub_event']['collection']['node'] = 'cheeseburger' + msg['type'] = 'headline' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testEventConfiguration(self): + """Testing message/pubsub_event/configuration/config""" + msg = self.ps.Message() + from sleekxmpp.plugins import xep_0004 + form = xep_0004.Form() + form.addField('pubsub#title', ftype='text-single', value='This thing is awesome') + msg['pubsub_event']['configuration']['node'] = 'cheese' + msg['pubsub_event']['configuration']['config'] = form + msg['type'] = 'headline' + xmlstring = """This thing is awesome""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testEventPurge(self): + """Testing message/pubsub_event/purge""" + msg = self.ps.Message() + msg['pubsub_event']['purge']['node'] = 'pickles' + msg['type'] = 'headline' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlstring == str(msg) == str(msg2) == str(msg3)) + + def testEventSubscription(self): + """Testing message/pubsub_event/subscription""" + msg = self.ps.Message() + msg['pubsub_event']['subscription']['node'] = 'pickles' + msg['pubsub_event']['subscription']['jid'] = 'fritzy@netflint.net/test' + msg['pubsub_event']['subscription']['subid'] = 'aabb1122' + msg['pubsub_event']['subscription']['subscription'] = 'subscribed' + msg['pubsub_event']['subscription']['expiry'] = 'presence' + msg['type'] = 'headline' + xmlstring = """""" + msg2 = self.ps.Message(None, self.ps.ET.fromstring(xmlstring)) + msg3 = self.ps.Message() + msg3.setValues(msg2.getValues()) + self.failUnless(xmlcompare.comparemany([xmlstring, str(msg), str(msg2), str(msg3)])) + suite = unittest.TestLoader().loadTestsFromTestCase(testpubsubstanzas) -- cgit v1.2.3