test_editorhooks.py
32 lines
| 884 B
| text/x-python
|
PythonLexer
Min RK
|
r18869 | """Test installing editor hooks""" | ||
import sys | ||||
Srinivas Reddy Thatiparthy
|
r23058 | from unittest import mock | ||
Min RK
|
r18869 | |||
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, | ||||
}) | ||||
Segev Finer
|
r23294 | return mock.MagicMock(**{'wait.return_value': 0}) | ||
Min RK
|
r18869 | editorhooks.install_editor('foo -l {line} -f {filename}', wait=False) | ||
with mock.patch('subprocess.Popen', fake_popen): | ||||
get_ipython().hooks.editor('the file', 64) | ||||
Matthias Bussonnier
|
r26716 | 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"] | ||||
Min RK
|
r18869 | else: | ||
expected = "foo -l 64 -f 'the file'" | ||||
cmd = args[0] | ||||
Matthias Bussonnier
|
r26716 | assert cmd == expected | ||