Show More
@@ -138,3 +138,12 b' class SyntaxErrorTest(unittest.TestCase):' | |||||
138 | # The SyntaxError should point to the correct line |
|
138 | # The SyntaxError should point to the correct line | |
139 | with tt.AssertPrints(["7/", "SyntaxError"]): |
|
139 | with tt.AssertPrints(["7/", "SyntaxError"]): | |
140 | ip.magic("run " + fname) |
|
140 | ip.magic("run " + fname) | |
|
141 | ||||
|
142 | def test_non_syntaxerror(self): | |||
|
143 | # SyntaxTB may be called with an error other than a SyntaxError | |||
|
144 | # See e.g. gh-4361 | |||
|
145 | try: | |||
|
146 | raise ValueError('QWERTY') | |||
|
147 | except ValueError: | |||
|
148 | with tt.AssertPrints('QWERTY'): | |||
|
149 | ip.showsyntaxerror() |
@@ -357,6 +357,9 b' class AssertPrints(object):' | |||||
357 | setattr(sys, self.channel, self.buffer if self.suppress else self.tee) |
|
357 | setattr(sys, self.channel, self.buffer if self.suppress else self.tee) | |
358 |
|
358 | |||
359 | def __exit__(self, etype, value, traceback): |
|
359 | def __exit__(self, etype, value, traceback): | |
|
360 | if value is not None: | |||
|
361 | # If an error was raised, don't check anything else | |||
|
362 | return False | |||
360 | self.tee.flush() |
|
363 | self.tee.flush() | |
361 | setattr(sys, self.channel, self.orig_stream) |
|
364 | setattr(sys, self.channel, self.orig_stream) | |
362 | printed = self.buffer.getvalue() |
|
365 | printed = self.buffer.getvalue() | |
@@ -375,6 +378,9 b' class AssertNotPrints(AssertPrints):' | |||||
375 |
|
378 | |||
376 | Counterpart of AssertPrints""" |
|
379 | Counterpart of AssertPrints""" | |
377 | def __exit__(self, etype, value, traceback): |
|
380 | def __exit__(self, etype, value, traceback): | |
|
381 | if value is not None: | |||
|
382 | # If an error was raised, don't check anything else | |||
|
383 | return False | |||
378 | self.tee.flush() |
|
384 | self.tee.flush() | |
379 | setattr(sys, self.channel, self.orig_stream) |
|
385 | setattr(sys, self.channel, self.orig_stream) | |
380 | printed = self.buffer.getvalue() |
|
386 | printed = self.buffer.getvalue() |
General Comments 0
You need to be logged in to leave comments.
Login now