def test_format_list_full(self): extracted = stacktrace.extract_stack( get_frame( supplement=dict( source_url='/foo/bar.pt', line=42, column=84, expression='tal:define="foo view/foo"', warnings=('watch out', 'pass auf'), getInfo=lambda: 'read all about it'), info='I am the Walrus' ) ) formatted = stacktrace.format_list(extracted) self.assertIsInstance(formatted, list) for line in formatted: self.assertEndsWith(line, '\n') line = formatted[-1].split('\n') self.assertStartsWith( line[0], ' File "' + MY_FILE_NAME + '", line ') self.assertEndsWith(line[0], ', in get_frame') self.assertEqual(' return sys._getframe()', line[1]) self.assertEqual(' - /foo/bar.pt', line[2]) self.assertEqual(' - Line 42, Column 84', line[3]) self.assertEqual( ' - Expression: tal:define="foo view/foo"', line[4]) self.assertEqual( ' - Warning: watch out', line[5]) self.assertEqual( ' - Warning: pass auf', line[6]) self.assertEqual( 'read all about it', line[7]) self.assertEqual(' - I am the Walrus', line[8])
def test_format_list_simple(self): extracted = stacktrace.extract_stack(get_frame()) formatted = stacktrace.format_list(extracted) self.assertIsInstance(formatted, list) for line in formatted: self.assertEndsWith(line, '\n') line = formatted[-1].split('\n') self.assertStartsWith(line[0], ' File "' + MY_FILE_NAME + '", line ') self.assertEndsWith(line[0], ', in get_frame') self.assertEqual(' return sys._getframe()', line[1])
def test_format_list_simple(self): extracted = stacktrace.extract_stack(get_frame()) formatted = stacktrace.format_list(extracted) self.assertIsInstance(formatted, list) for line in formatted: self.assertEndsWith(line, '\n') line = formatted[-1].split('\n') self.assertStartsWith( line[0], ' File "' + MY_FILE_NAME + '", line ') self.assertEndsWith(line[0], ', in get_frame') self.assertEqual(' return sys._getframe()', line[1])
def test_format_list_extra_errors(self): extracted = stacktrace.extract_stack(get_frame(supplement=dict())) extracted[-1][-2]['warnings'] = object() # This should never happen. original_stderr = sys.__stderr__ stderr = sys.stderr = StringIO.StringIO() self.assertFalse(stacktrace.DEBUG_EXCEPTION_FORMATTER) stacktrace.DEBUG_EXCEPTION_FORMATTER = True try: formatted = stacktrace.format_list(extracted) finally: sys.stderr = original_stderr stacktrace.DEBUG_EXCEPTION_FORMATTER = False self.assertStartsWith(stderr.getvalue(), 'Traceback (most recent') self.assertEndsWith(formatted[-1], ' return sys._getframe()\n')
def test_format_list_full(self): extracted = stacktrace.extract_stack( get_frame(supplement=dict(source_url='/foo/bar.pt', line=42, column=84, expression='tal:define="foo view/foo"', warnings=('watch out', 'pass auf'), getInfo=lambda: 'read all about it'), info='I am the Walrus')) formatted = stacktrace.format_list(extracted) self.assertIsInstance(formatted, list) for line in formatted: self.assertEndsWith(line, '\n') line = formatted[-1].split('\n') self.assertStartsWith(line[0], ' File "' + MY_FILE_NAME + '", line ') self.assertEndsWith(line[0], ', in get_frame') self.assertEqual(' return sys._getframe()', line[1]) self.assertEqual(' - /foo/bar.pt', line[2]) self.assertEqual(' - Line 42, Column 84', line[3]) self.assertEqual(' - Expression: tal:define="foo view/foo"', line[4]) self.assertEqual(' - Warning: watch out', line[5]) self.assertEqual(' - Warning: pass auf', line[6]) self.assertEqual('read all about it', line[7]) self.assertEqual(' - I am the Walrus', line[8])