##// END OF EJS Templates
Merge pull request #11639 from jsnydes/post-execute...
Merge pull request #11639 from jsnydes/post-execute address #11630 by catching KeyboardInterrupt from event handlers

File last commit:

r23294:7e3493b7
r24963:9d7f4127 merge
Show More
test_editorhooks.py
34 lines | 941 B | text/x-python | PythonLexer
"""Test installing editor hooks"""
import sys
from unittest import mock
import nose.tools as nt
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)
nt.assert_equal(len(called), 1)
args = called[0]['args']
kwargs = called[0]['kwargs']
nt.assert_equal(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]
nt.assert_equal(cmd, expected)