File: test_editorhooks.py

package info (click to toggle)
ipython 5.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 9,428 kB
  • ctags: 4,941
  • sloc: python: 33,657; makefile: 170; sh: 139
file content (37 lines) | stat: -rw-r--r-- 929 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""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)