##// END OF EJS Templates
FileLink: accept path-like objects (#11059)...
FileLink: accept path-like objects (#11059) Accept path-like objects by converting them to strings using `os.fsdecode`. From the Python 3 [glossary][1]: > `os.fsdecode()` and `os.fsencode()` can be used to guarantee a `str` > or `bytes` result N.B. `os.fsdecode` accepts path-like objects starting with Python 3.6, so users of older versions still can't use FileLink with path-like objects. [1]: https://docs.python.org/3/glossary.html#term-path-like-object

File last commit:

r23294:7e3493b7
r24227:707258ee
Show More
test_editorhooks.py
34 lines | 941 B | text/x-python | PythonLexer
/ IPython / lib / tests / test_editorhooks.py
Min RK
fix editorhooks typo...
r18869 """Test installing editor hooks"""
import sys
Srinivas Reddy Thatiparthy
import mock from unittest
r23058 from unittest import mock
Min RK
fix editorhooks typo...
r18869
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,
})
Segev Finer
IPython/lib/editorhooks.py: wait for process even if wait=False...
r23294 return mock.MagicMock(**{'wait.return_value': 0})
Min RK
fix editorhooks typo...
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)
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)