Show More
@@ -1703,9 +1703,6 b' class InteractiveShell(SingletonConfigurable):' | |||||
1703 | elif etype is UsageError: |
|
1703 | elif etype is UsageError: | |
1704 | self.write_err("UsageError: %s" % value) |
|
1704 | self.write_err("UsageError: %s" % value) | |
1705 | else: |
|
1705 | else: | |
1706 | if etype in self.custom_exceptions: |
|
|||
1707 | stb = self.CustomTB(etype, value, tb, tb_offset) |
|
|||
1708 | else: |
|
|||
1709 |
|
|
1706 | if exception_only: | |
1710 |
|
|
1707 | stb = ['An exception has occurred, use %tb to see ' | |
1711 |
|
|
1708 | 'the full traceback.\n'] |
@@ -338,6 +338,21 b' class InteractiveShellTestCase(unittest.TestCase):' | |||||
338 | parent = None) |
|
338 | parent = None) | |
339 | nt.assert_equal(find, info) |
|
339 | nt.assert_equal(find, info) | |
340 |
|
340 | |||
|
341 | def test_custom_exception(self): | |||
|
342 | called = [] | |||
|
343 | def my_handler(shell, etype, value, tb, tb_offset=None): | |||
|
344 | called.append(etype) | |||
|
345 | shell.showtraceback((etype, value, tb), tb_offset=tb_offset) | |||
|
346 | ||||
|
347 | ip.set_custom_exc((ValueError,), my_handler) | |||
|
348 | try: | |||
|
349 | ip.run_cell("raise ValueError('test')") | |||
|
350 | # Check that this was called, and only once. | |||
|
351 | self.assertEqual(called, [ValueError]) | |||
|
352 | finally: | |||
|
353 | # Reset the custom exception hook | |||
|
354 | ip.set_custom_exc((), None) | |||
|
355 | ||||
341 |
|
356 | |||
342 | class TestSafeExecfileNonAsciiPath(unittest.TestCase): |
|
357 | class TestSafeExecfileNonAsciiPath(unittest.TestCase): | |
343 |
|
358 |
General Comments 0
You need to be logged in to leave comments.
Login now