##// END OF EJS Templates
Merge pull request #4469 from takluyver/py3-getcwdu...
Merge pull request #4469 from takluyver/py3-getcwdu Python 3 & getcwdu We were using the os.getcwdu() function in several places. That doesn't exist on Python 3, but the path.py module was masking that by setting os.getcwdu = os.getcwd. As described in #4462, however, that didn't always work. This adds a reference in py3compat which points to getcwd on Python 3 and getcwdu in Python 2.

File last commit:

r12602:7c779e95
r13456:5bf4949f merge
Show More
test_alias.py
40 lines | 1.1 KiB | text/x-python | PythonLexer
from IPython.utils.capture import capture_output
import nose.tools as nt
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)
nt.assert_equal(am.retrieve_alias(name), cmd)
nt.assert_in((name, cmd), am.aliases)
# 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]
nt.assert_equal(result, [cmd])
finally:
_ip.system = orig_system
# Test removing the alias
am.undefine_alias(name)
assert not am.is_alias(name)
with nt.assert_raises(ValueError):
am.retrieve_alias(name)
nt.assert_not_in((name, cmd), am.aliases)
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')
nt.assert_equal(cap.stderr.split(':')[0], 'UsageError')