summaryrefslogtreecommitdiff
path: root/tests/test_stream_exceptions.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-12-17 13:11:03 -0500
committerLance Stout <lancestout@gmail.com>2010-12-17 13:11:03 -0500
commit34c374a1e1dad468869c8e5dc6fb2ea7b1d90c7e (patch)
tree450f0d6a299effe6facd3ab82956e9da74807dcc /tests/test_stream_exceptions.py
parent506eccf84d86ccf428e1edd8092fdac46f1633fe (diff)
downloadslixmpp-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.py37
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)