##// 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:

r7115:a8a64ebc
r23973:0fdcb43a
Show More
test_logger.py
32 lines | 917 B | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
"""Test IPython.core.logger"""
import os.path
import nose.tools as nt
from IPython.utils.tempdir import TemporaryDirectory
_ip = get_ipython()
def test_logstart_inaccessible_file():
try:
_ip.logger.logstart(logfname="/") # Opening that filename will fail.
except IOError:
pass
else:
nt.assert_true(False) # The try block should never pass.
try:
_ip.run_cell("a=1") # Check it doesn't try to log this
finally:
_ip.logger.log_active = False # If this fails, don't let later tests fail
def test_logstart_unicode():
with TemporaryDirectory() as tdir:
logfname = os.path.join(tdir, "test_unicode.log")
_ip.run_cell("'abc€'")
try:
_ip.magic("logstart -to %s" % logfname)
_ip.run_cell("'abc€'")
finally:
_ip.logger.logstop()