diff options
author | Lance Stout <lancestout@gmail.com> | 2010-10-07 10:58:13 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-10-07 10:58:13 -0400 |
commit | 0fffbb82000a1a6c3c23d62fedcbd8e8141f8994 (patch) | |
tree | 114c3767ccc13de3d0388b43cd357b90334f469a /tests/test_stanza_iq.py | |
parent | 21c32c6e1cfd9b18e4c8320e0796e1d7e4b3f74c (diff) | |
download | slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.gz slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.bz2 slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.tar.xz slixmpp-0fffbb82000a1a6c3c23d62fedcbd8e8141f8994.zip |
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
Diffstat (limited to 'tests/test_stanza_iq.py')
-rw-r--r-- | tests/test_stanza_iq.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/test_stanza_iq.py b/tests/test_stanza_iq.py new file mode 100644 index 00000000..3f6ce8d7 --- /dev/null +++ b/tests/test_stanza_iq.py @@ -0,0 +1,90 @@ +from sleekxmpp.test import * +from sleekxmpp.xmlstream.stanzabase import ET + + +class TestIqStanzas(SleekTest): + + def tearDown(self): + """Shutdown the XML stream after testing.""" + self.stream_close() + + def testSetup(self): + """Test initializing default Iq values.""" + iq = self.Iq() + self.check_iq(iq, """ + <iq id="0" /> + """) + + def testPayload(self): + """Test setting Iq stanza payload.""" + iq = self.Iq() + iq.setPayload(ET.Element('{test}tester')) + self.check_iq(iq, """ + <iq id="0"> + <tester xmlns="test" /> + </iq> + """, use_values=False) + + + def testUnhandled(self): + """Test behavior for Iq.unhandled.""" + self.stream_start() + self.stream_recv(""" + <iq id="test" type="get"> + <query xmlns="test" /> + </iq> + """) + + iq = self.Iq() + iq['id'] = 'test' + iq['error']['condition'] = 'feature-not-implemented' + iq['error']['text'] = 'No handlers registered for this request.' + + self.stream_send_iq(iq, """ + <iq id="test" type="error"> + <error type="cancel"> + <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /> + <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"> + No handlers registered for this request. + </text> + </error> + </iq> + """) + + def testQuery(self): + """Test modifying query element of Iq stanzas.""" + iq = self.Iq() + + iq['query'] = 'query_ns' + self.check_iq(iq, """ + <iq id="0"> + <query xmlns="query_ns" /> + </iq> + """) + + iq['query'] = 'query_ns2' + self.check_iq(iq, """ + <iq id="0"> + <query xmlns="query_ns2" /> + </iq> + """) + + self.failUnless(iq['query'] == 'query_ns2', "Query namespace doesn't match") + + del iq['query'] + self.check_iq(iq, """ + <iq id="0" /> + """) + + def testReply(self): + """Test setting proper result type in Iq replies.""" + iq = self.Iq() + iq['to'] = 'user@localhost' + iq['type'] = 'get' + iq.reply() + + self.check_iq(iq, """ + <iq id="0" type="result" /> + """) + +suite = unittest.TestLoader().loadTestsFromTestCase(TestIqStanzas) |