12345678910111213141516171819202122232425262728293031323334353637 |
- """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)
|