From 0fffbb82000a1a6c3c23d62fedcbd8e8141f8994 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Thu, 7 Oct 2010 10:58:13 -0400 Subject: Unit test reorganization. Moved SleekTest to sleekxmpp.test. Organized test suites by their focus. - Suites focused on testing stanza objects are named test_stanza_X.py - Suites focused on testing stream behavior are name test_stream_X.py --- tests/test_stanza_xep_0030.py | 176 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 tests/test_stanza_xep_0030.py (limited to 'tests/test_stanza_xep_0030.py') diff --git a/tests/test_stanza_xep_0030.py b/tests/test_stanza_xep_0030.py new file mode 100644 index 00000000..bb7ee6a3 --- /dev/null +++ b/tests/test_stanza_xep_0030.py @@ -0,0 +1,176 @@ +from sleekxmpp.test import * +import sleekxmpp.plugins.xep_0030 as xep_0030 + + +class TestDisco(SleekTest): + + def setUp(self): + registerStanzaPlugin(Iq, xep_0030.DiscoInfo) + registerStanzaPlugin(Iq, xep_0030.DiscoItems) + + def testCreateInfoQueryNoNode(self): + """Testing disco#info query with no node.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_info']['node'] = '' + + self.check_iq(iq, """ + + + + """) + + def testCreateInfoQueryWithNode(self): + """Testing disco#info query with a node.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_info']['node'] = 'foo' + + self.check_iq(iq, """ + + + + """) + + def testCreateInfoQueryNoNode(self): + """Testing disco#items query with no node.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_items']['node'] = '' + + self.check_iq(iq, """ + + + + """) + + def testCreateItemsQueryWithNode(self): + """Testing disco#items query with a node.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_items']['node'] = 'foo' + + self.check_iq(iq, """ + + + + """) + + def testInfoIdentities(self): + """Testing adding identities to disco#info.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_info']['node'] = 'foo' + iq['disco_info'].addIdentity('conference', 'text', 'Chatroom') + + self.check_iq(iq, """ + + + + + + """) + + def testInfoFeatures(self): + """Testing adding features to disco#info.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_info']['node'] = 'foo' + iq['disco_info'].addFeature('foo') + iq['disco_info'].addFeature('bar') + + self.check_iq(iq, """ + + + + + + + """) + + def testItems(self): + """Testing adding features to disco#info.""" + iq = self.Iq() + iq['id'] = "0" + iq['disco_items']['node'] = 'foo' + iq['disco_items'].addItem('user@localhost') + iq['disco_items'].addItem('user@localhost', 'foo') + iq['disco_items'].addItem('user@localhost', 'bar', 'Testing') + + self.check_iq(iq, """ + + + + + + + + """) + + def testAddRemoveIdentities(self): + """Test adding and removing identities to disco#info stanza""" + ids = [('automation', 'commands', 'AdHoc'), + ('conference', 'text', 'ChatRoom')] + + info = xep_0030.DiscoInfo() + info.addIdentity(*ids[0]) + self.failUnless(info.getIdentities() == [ids[0]]) + + info.delIdentity('automation', 'commands') + self.failUnless(info.getIdentities() == []) + + info.setIdentities(ids) + self.failUnless(info.getIdentities() == ids) + + info.delIdentity('automation', 'commands') + self.failUnless(info.getIdentities() == [ids[1]]) + + info.delIdentities() + self.failUnless(info.getIdentities() == []) + + def testAddRemoveFeatures(self): + """Test adding and removing features to disco#info stanza""" + features = ['foo', 'bar', 'baz'] + + info = xep_0030.DiscoInfo() + info.addFeature(features[0]) + self.failUnless(info.getFeatures() == [features[0]]) + + info.delFeature('foo') + self.failUnless(info.getFeatures() == []) + + info.setFeatures(features) + self.failUnless(info.getFeatures() == features) + + info.delFeature('bar') + self.failUnless(info.getFeatures() == ['foo', 'baz']) + + info.delFeatures() + self.failUnless(info.getFeatures() == []) + + def testAddRemoveItems(self): + """Test adding and removing items to disco#items stanza""" + items = [('user@localhost', None, None), + ('user@localhost', 'foo', None), + ('user@localhost', 'bar', 'Test')] + + info = xep_0030.DiscoItems() + self.failUnless(True, ""+str(items[0])) + + info.addItem(*(items[0])) + self.failUnless(info.getItems() == [items[0]], info.getItems()) + + info.delItem('user@localhost') + self.failUnless(info.getItems() == []) + + info.setItems(items) + self.failUnless(info.getItems() == items) + + info.delItem('user@localhost', 'foo') + self.failUnless(info.getItems() == [items[0], items[2]]) + + info.delItems() + self.failUnless(info.getItems() == []) + + +suite = unittest.TestLoader().loadTestsFromTestCase(TestDisco) -- cgit v1.2.3