test_editorhooks.py
37 lines
| 929 B
| text/x-python
|
PythonLexer
Min RK
|
r18869 | """Test installing editor hooks""" | ||
import sys | ||||
try: | ||||
import mock | ||||
except ImportError: | ||||
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, | ||||
}) | ||||
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) | ||||