##// END OF EJS Templates
Silence tokenization errors in ultratb....
Silence tokenization errors in ultratb. Currently, the ultratb module attempts to tokenize the code it finds in tracebacks, and issues a scary-sounding warnings about potentially invalid tracebacks if it fails. However, this tokenization is known to fail in some cases, notably if the reported error line is the terminating line of a multiline, triple-quoted string literal. This change fixes the issue by switching this to a `logging.debug` message, which silences it by default without completely removing it for debugging purposes. Fixes #6864.

File last commit:

r23044:7e78dda8
r23973:0fdcb43a
Show More
test_prompts.py
34 lines | 918 B | text/x-python | PythonLexer
# -*- coding: utf-8
"""Tests for prompt generation."""
import unittest
from IPython.core.prompts import LazyEvaluate
from IPython.testing.globalipapp import get_ipython
ip = get_ipython()
class PromptTests(unittest.TestCase):
def test_lazy_eval_unicode(self):
u = u'ünicødé'
lz = LazyEvaluate(lambda : u)
self.assertEqual(str(lz), u)
self.assertEqual(format(lz), u)
def test_lazy_eval_nonascii_bytes(self):
u = u'ünicødé'
b = u.encode('utf8')
lz = LazyEvaluate(lambda : b)
# unicode(lz) would fail
self.assertEqual(str(lz), str(b))
self.assertEqual(format(lz), str(b))
def test_lazy_eval_float(self):
f = 0.503
lz = LazyEvaluate(lambda : f)
self.assertEqual(str(lz), str(f))
self.assertEqual(format(lz), str(f))
self.assertEqual(format(lz, '.1'), '0.5')