diff options
author | Lance Stout <lancestout@gmail.com> | 2010-12-17 13:11:03 -0500 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-12-17 13:11:03 -0500 |
commit | 34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e (patch) | |
tree | 450f0d6a299effe6facd3ab82956e9da74807dcc /tests/test_stream_exceptions.py | |
parent | 506eccf84d86ccf428e1edd8092fdac46f1633fe (diff) | |
download | slixmpp-34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e.tar.gz slixmpp-34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e.tar.bz2 slixmpp-34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e.tar.xz slixmpp-34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e.zip |
Make tests pass for catching exceptions.
May now use sys.excepthook to catch exceptions
from threaded handlers.
Diffstat (limited to 'tests/test_stream_exceptions.py')
-rw-r--r-- | tests/test_stream_exceptions.py | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/tests/test_stream_exceptions.py b/tests/test_stream_exceptions.py index b7be6485..e1b70d39 100644 --- a/tests/test_stream_exceptions.py +++ b/tests/test_stream_exceptions.py @@ -10,6 +10,7 @@ class TestStreamExceptions(SleekTest): """ def tearDown(self): + sys.excepthook = sys.__excepthook__ self.stream_close() def testXMPPErrorException(self): @@ -78,9 +79,16 @@ class TestStreamExceptions(SleekTest): def testUnknownException(self): """Test raising an generic exception in a threaded handler.""" + raised_errors = [] + def message(msg): raise ValueError("Did something wrong") + def catch_error(*args, **kwargs): + raised_errors.append(True) + + sys.excepthook = catch_error + self.stream_start() self.xmpp.add_event_handler('message', message) @@ -90,21 +98,20 @@ class TestStreamExceptions(SleekTest): </message> """) - if sys.version_info < (3, 0): - self.send(""" - <message type="error"> - <error type="cancel"> - <undefined-condition - xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /> - <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"> - SleekXMPP got into trouble. - </text> - </error> - </message> - """) - else: - # Unfortunately, tracebacks do not make for very portable tests. - pass + self.send(""" + <message type="error"> + <error type="cancel"> + <undefined-condition + xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" /> + <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"> + SleekXMPP got into trouble. + </text> + </error> + </message> + """) + + self.assertEqual(raised_errors, [True], "Exception was not raised: %s" % raised_errors) + suite = unittest.TestLoader().loadTestsFromTestCase(TestStreamExceptions) |