##// END OF EJS Templates
Fix case where some Exceptions have no traceback....
Fix case where some Exceptions have no traceback. In chained exception if some exceptions does not have tracebacks, prevent jumping to them. We also add the assert that the main exception does have a traceback. This is a port of python/cpython commit 5f3433f210d25d366fcebfb40adf444c8f46cd59

File last commit:

r26716:4142eaaf
r28389:6bf247d3
Show More
test_editorhooks.py
32 lines | 884 B | text/x-python | PythonLexer
"""Test installing editor hooks"""
import sys
from unittest import mock
from IPython import get_ipython
from IPython.lib import editorhooks
def test_install_editor():
called = []
def fake_popen(*args, **kwargs):
called.append({
'args': args,
'kwargs': kwargs,
})
return mock.MagicMock(**{'wait.return_value': 0})
editorhooks.install_editor('foo -l {line} -f {filename}', wait=False)
with mock.patch('subprocess.Popen', fake_popen):
get_ipython().hooks.editor('the file', 64)
assert len(called) == 1
args = called[0]["args"]
kwargs = called[0]["kwargs"]
assert kwargs == {"shell": True}
if sys.platform.startswith("win"):
expected = ["foo", "-l", "64", "-f", "the file"]
else:
expected = "foo -l 64 -f 'the file'"
cmd = args[0]
assert cmd == expected