1# -*- coding: utf-8 -*- 2"""Testing built_ins.Aliases""" 3from __future__ import unicode_literals, print_function 4 5import os 6 7import pytest 8 9import xonsh.built_ins as built_ins 10from xonsh.aliases import Aliases 11from xonsh.environ import Env 12 13from tools import skip_if_on_windows 14 15 16def cd(args, stdin=None): 17 return args 18 19 20ALIASES = Aliases( 21 {"o": ["omg", "lala"]}, 22 color_ls=["ls", "--color=true"], 23 ls="ls '- -'", 24 cd=cd, 25 indirect_cd="cd ..", 26) 27RAW = ALIASES._raw 28 29 30def test_imports(): 31 expected = { 32 "o": ["omg", "lala"], 33 "ls": ["ls", "- -"], 34 "color_ls": ["ls", "--color=true"], 35 "cd": cd, 36 "indirect_cd": ["cd", ".."], 37 } 38 assert RAW == expected 39 40 41def test_eval_normal(xonsh_builtins): 42 assert ALIASES.get("o") == ["omg", "lala"] 43 44 45def test_eval_self_reference(xonsh_builtins): 46 assert ALIASES.get("ls") == ["ls", "- -"] 47 48 49def test_eval_recursive(xonsh_builtins): 50 assert ALIASES.get("color_ls") == ["ls", "- -", "--color=true"] 51 52 53@skip_if_on_windows 54def test_eval_recursive_callable_partial(xonsh_builtins): 55 xonsh_builtins.__xonsh_env__ = Env(HOME=os.path.expanduser("~")) 56 assert ALIASES.get("indirect_cd")(["arg2", "arg3"]) == ["..", "arg2", "arg3"] 57