##// END OF EJS Templates
Fix autosuggestions in multi-line mode, vi command mode delay (#13991)...
Fix autosuggestions in multi-line mode, vi command mode delay (#13991) Fixes #13970. Relates to https://github.com/ipython/ipython/issues/13443. Documents https://github.com/ipython/ipython/pull/12603 with a new `emacs_like_insert_mode` filter alias.

File last commit:

r27549:44d64dc3
r28198:4e7b9408 merge
Show More
test_alias.py
66 lines | 2.0 KiB | text/x-python | PythonLexer
Thomas Kluyver
Add test for alias creation, use and destruction
r12602 from IPython.utils.capture import capture_output
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 import pytest
Thomas Kluyver
Add test for alias creation, use and destruction
r12602
def test_alias_lifecycle():
name = 'test_alias1'
cmd = 'echo "Hello"'
am = _ip.alias_manager
am.clear_aliases()
am.define_alias(name, cmd)
assert am.is_alias(name)
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 assert am.retrieve_alias(name) == cmd
assert (name, cmd) in am.aliases
Thomas Kluyver
Add test for alias creation, use and destruction
r12602
# Test running the alias
orig_system = _ip.system
result = []
_ip.system = result.append
try:
_ip.run_cell('%{}'.format(name))
result = [c.strip() for c in result]
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 assert result == [cmd]
Thomas Kluyver
Add test for alias creation, use and destruction
r12602 finally:
_ip.system = orig_system
# Test removing the alias
am.undefine_alias(name)
assert not am.is_alias(name)
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 with pytest.raises(ValueError):
Thomas Kluyver
Add test for alias creation, use and destruction
r12602 am.retrieve_alias(name)
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 assert (name, cmd) not in am.aliases
Thomas Kluyver
Add test for alias creation, use and destruction
r12602
def test_alias_args_error():
"""Error expanding with wrong number of arguments"""
_ip.alias_manager.define_alias('parts', 'echo first %s second %s')
# capture stderr:
with capture_output() as cap:
_ip.run_cell('parts 1')
Blazej Michalik
Darker
r26750 assert cap.stderr.split(":")[0] == "UsageError"
Matthias Bussonnier
Also run test with Pytest....
r25117
Thomas Adriaan Hellinger
Added test code for 'commenting out' feature of alias magic
r20896 def test_alias_args_commented():
"""Check that alias correctly ignores 'commented out' args"""
Matthias Bussonnier
Update some deprecated ip.magic() to run_line-magic in tests
r27549 _ip.run_line_magic("alias", "commentarg echo this is %%s a commented out arg")
Thomas Adriaan Hellinger
Fixed bug in alias; wrote new alias test.
r20897 with capture_output() as cap:
Matthias Bussonnier
Update some deprecated ip.magic() to run_line-magic in tests
r27549 _ip.run_cell("commentarg")
Matthias Bussonnier
Also run test with Pytest....
r25117 # strip() is for pytest compat; testing via iptest patch IPython shell
Dimitri Papadopoulos
Typos found by codespell
r26875 # in testing.globalipapp and replace the system call which messed up the
Matthias Bussonnier
Also run test with Pytest....
r25117 # \r\n
assert cap.stdout.strip() == 'this is %s a commented out arg'
Thomas Adriaan Hellinger
Wrote test to ensure that number of nargs is calculated correctly.
r20898
def test_alias_args_commented_nargs():
"""Check that alias correctly counts args, excluding those commented out"""
am = _ip.alias_manager
alias_name = 'comargcount'
Thomas Adriaan Hellinger
Removed decorative quotes in cmd causing 'commented_nargs' test to fail
r20899 cmd = 'echo this is %%s a commented out arg and this is not %s'
Thomas Adriaan Hellinger
Wrote test to ensure that number of nargs is calculated correctly.
r20898
am.define_alias(alias_name, cmd)
assert am.is_alias(alias_name)
thealias = am.get_alias(alias_name)
Tomasz Kłoczko
nose2pytest migration batch 1...
r26749 assert thealias.nargs == 1