2015-03-22 02:46:33 +01:00
|
|
|
"""Testing built_ins.Aliases"""
|
2015-03-25 18:32:10 -05:00
|
|
|
|
2022-01-31 21:26:34 +05:30
|
|
|
import inspect
|
2015-12-19 17:29:48 -05:00
|
|
|
import os
|
2022-08-09 08:42:40 -07:00
|
|
|
import sys
|
2016-05-17 11:25:46 +02:00
|
|
|
|
2016-06-22 22:45:42 +03:00
|
|
|
import pytest
|
2015-03-22 02:46:33 +01:00
|
|
|
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
from xonsh.aliases import Aliases, ExecAlias, run_alias_by_params
|
2015-12-19 18:09:06 -05:00
|
|
|
|
2015-03-22 02:46:33 +01:00
|
|
|
|
feat: add superhelp and additional context via new FuncAlias (#5366)
### Goals
* Make callable aliases transparent.
* Catch errors in callable aliases and show the name of the source.
* Show additional attributes: thredable, capturable.
* Closes #5266
## Exception
### Before
```xsh
aliases['cd']
# <function xonsh.dirstack.cd>
aliases['trace']
# <function xonsh.aliases.trace>
aliases['null'] = lambda: 1/0
null
# ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# ZeroDivisionError: division by zero <--- ???
# hey!!!!!
```
### After
```xsh
aliases['cd']
# FuncAlias({'name': 'cd', 'func': 'cd'})
aliases['trace']
# FuncAlias({'name': 'trace', 'func': 'trace', '__xonsh_threadable__': False})
$XONSH_SHOW_TRACEBACK=False
$RAISE_SUBPROC_ERROR = False
aliases['null'] = lambda: 1/0
null
#Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-15', 'func': FuncAlias({'name': 'null', 'func': '<lambda>'}), 'alias': 'null', 'pid': None}
#ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-8', 'func': FuncAlias({'name': 'if', 'func': '_exc'}), 'alias': 'if', 'pid': None}
# ZeroDivisionError: division by zero
# hey!!!!!
```
## Superhelp
### Before
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# No manual entry for hello
```
### After
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# FuncAlias({'name': 'hello', 'func': '_alias_hello'}):
# Show world.
```
## For community
⬇️ **Please click the 👍 reaction instead of leaving a `+1` or 👍
comment**
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-05-13 15:11:58 +02:00
|
|
|
def cd(args, stdin=None):
|
2015-03-22 02:46:33 +01:00
|
|
|
return args
|
|
|
|
|
2018-08-30 09:18:49 -05:00
|
|
|
|
2018-11-19 19:51:15 -05:00
|
|
|
def make_aliases():
|
|
|
|
ales = Aliases(
|
|
|
|
{"o": ["omg", "lala"]},
|
|
|
|
color_ls=["ls", "--color=true"],
|
|
|
|
ls="ls '- -'",
|
|
|
|
cd=cd,
|
|
|
|
indirect_cd="cd ..",
|
|
|
|
)
|
|
|
|
return ales
|
2015-03-22 02:46:33 +01:00
|
|
|
|
2016-06-25 01:15:48 +03:00
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_imports(xession):
|
2018-11-19 19:51:15 -05:00
|
|
|
ales = make_aliases()
|
2016-06-22 22:45:42 +03:00
|
|
|
expected = {
|
2018-08-30 09:18:49 -05:00
|
|
|
"o": ["omg", "lala"],
|
|
|
|
"ls": ["ls", "- -"],
|
|
|
|
"color_ls": ["ls", "--color=true"],
|
feat: add superhelp and additional context via new FuncAlias (#5366)
### Goals
* Make callable aliases transparent.
* Catch errors in callable aliases and show the name of the source.
* Show additional attributes: thredable, capturable.
* Closes #5266
## Exception
### Before
```xsh
aliases['cd']
# <function xonsh.dirstack.cd>
aliases['trace']
# <function xonsh.aliases.trace>
aliases['null'] = lambda: 1/0
null
# ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# ZeroDivisionError: division by zero <--- ???
# hey!!!!!
```
### After
```xsh
aliases['cd']
# FuncAlias({'name': 'cd', 'func': 'cd'})
aliases['trace']
# FuncAlias({'name': 'trace', 'func': 'trace', '__xonsh_threadable__': False})
$XONSH_SHOW_TRACEBACK=False
$RAISE_SUBPROC_ERROR = False
aliases['null'] = lambda: 1/0
null
#Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-15', 'func': FuncAlias({'name': 'null', 'func': '<lambda>'}), 'alias': 'null', 'pid': None}
#ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-8', 'func': FuncAlias({'name': 'if', 'func': '_exc'}), 'alias': 'if', 'pid': None}
# ZeroDivisionError: division by zero
# hey!!!!!
```
## Superhelp
### Before
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# No manual entry for hello
```
### After
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# FuncAlias({'name': 'hello', 'func': '_alias_hello'}):
# Show world.
```
## For community
⬇️ **Please click the 👍 reaction instead of leaving a `+1` or 👍
comment**
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-05-13 15:11:58 +02:00
|
|
|
"cd": "FuncAlias",
|
2018-08-30 09:18:49 -05:00
|
|
|
"indirect_cd": ["cd", ".."],
|
2016-06-22 22:45:42 +03:00
|
|
|
}
|
2018-11-19 19:51:15 -05:00
|
|
|
raw = ales._raw
|
feat: add superhelp and additional context via new FuncAlias (#5366)
### Goals
* Make callable aliases transparent.
* Catch errors in callable aliases and show the name of the source.
* Show additional attributes: thredable, capturable.
* Closes #5266
## Exception
### Before
```xsh
aliases['cd']
# <function xonsh.dirstack.cd>
aliases['trace']
# <function xonsh.aliases.trace>
aliases['null'] = lambda: 1/0
null
# ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# ZeroDivisionError: division by zero <--- ???
# hey!!!!!
```
### After
```xsh
aliases['cd']
# FuncAlias({'name': 'cd', 'func': 'cd'})
aliases['trace']
# FuncAlias({'name': 'trace', 'func': 'trace', '__xonsh_threadable__': False})
$XONSH_SHOW_TRACEBACK=False
$RAISE_SUBPROC_ERROR = False
aliases['null'] = lambda: 1/0
null
#Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-15', 'func': FuncAlias({'name': 'null', 'func': '<lambda>'}), 'alias': 'null', 'pid': None}
#ZeroDivisionError: division by zero
@aliases.register('catch')
@aliases.register('me')
@aliases.register('if')
@aliases.register('you')
@aliases.register('can')
def _exc(args, stdin, stdout):
for line in stdin.readlines():
print(line.strip() + '!', file=stdout, flush=True)
return 1/0 if 'i' in $__ALIAS_NAME else 0
echo hey | catch | me | if | you | can
# Exception in thread {'cls': 'ProcProxyThread', 'name': 'Thread-8', 'func': FuncAlias({'name': 'if', 'func': '_exc'}), 'alias': 'if', 'pid': None}
# ZeroDivisionError: division by zero
# hey!!!!!
```
## Superhelp
### Before
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# No manual entry for hello
```
### After
```xsh
@aliases.register("hello")
def _alias_hello():
"""Show world."""
print('world')
hello?
# FuncAlias({'name': 'hello', 'func': '_alias_hello'}):
# Show world.
```
## For community
⬇️ **Please click the 👍 reaction instead of leaving a `+1` or 👍
comment**
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-05-13 15:11:58 +02:00
|
|
|
raw["cd"] = type(ales["cd"]).__name__
|
2018-11-19 19:51:15 -05:00
|
|
|
assert raw == expected
|
2015-03-22 02:46:33 +01:00
|
|
|
|
2015-07-29 23:58:25 +02:00
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_eval_normal(xession):
|
2018-11-19 19:51:15 -05:00
|
|
|
ales = make_aliases()
|
|
|
|
assert ales.get("o") == ["omg", "lala"]
|
2016-06-25 01:15:48 +03:00
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_eval_self_reference(xession):
|
2018-11-19 19:51:15 -05:00
|
|
|
ales = make_aliases()
|
|
|
|
assert ales.get("ls") == ["ls", "- -"]
|
2016-06-25 01:15:48 +03:00
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_eval_recursive(xession):
|
2018-11-19 19:51:15 -05:00
|
|
|
ales = make_aliases()
|
|
|
|
assert ales.get("color_ls") == ["ls", "- -", "--color=true"]
|
2016-06-25 01:15:48 +03:00
|
|
|
|
2015-07-29 23:58:25 +02:00
|
|
|
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
def test_eval_callable(xession):
|
|
|
|
ales = make_aliases()
|
|
|
|
resolved = ales.get(["cd", "tmp"])
|
|
|
|
assert callable(resolved[0])
|
|
|
|
assert isinstance(resolved[1], str)
|
|
|
|
|
|
|
|
|
2021-05-20 15:44:26 +05:30
|
|
|
def test_eval_recursive_callable_partial(xonsh_execer, xession):
|
2018-11-19 19:51:15 -05:00
|
|
|
ales = make_aliases()
|
2022-01-08 04:03:22 +05:30
|
|
|
xession.env["HOME"] = os.path.expanduser("~")
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
assert ales.get(["indirect_cd", "arg2", "arg3"])[1:] == ["..", "arg2", "arg3"]
|
2019-01-28 17:17:55 -05:00
|
|
|
|
|
|
|
|
2019-02-04 16:15:29 -05:00
|
|
|
def _return_to_sender_all(args, stdin, stdout, stderr, spec, stack):
|
2019-02-04 16:17:02 -05:00
|
|
|
return (
|
|
|
|
args,
|
|
|
|
{
|
|
|
|
"stdin": stdin,
|
|
|
|
"stdout": stdout,
|
|
|
|
"stderr": stderr,
|
|
|
|
"spec": spec,
|
|
|
|
"stack": stack,
|
|
|
|
},
|
|
|
|
)
|
2019-01-28 17:17:55 -05:00
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_recursive_callable_partial_all(xession):
|
2019-02-04 16:15:29 -05:00
|
|
|
ales = Aliases({"rtn": _return_to_sender_all, "rtn-recurse": ["rtn", "arg1"]})
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
alias = ales.get("rtn-recurse")[0]
|
2019-01-28 17:17:55 -05:00
|
|
|
assert callable(alias)
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
args, obs = alias(
|
|
|
|
["arg1", "arg2"], stdin="a", stdout="b", stderr="c", spec="d", stack="e"
|
|
|
|
)
|
2019-01-28 17:17:55 -05:00
|
|
|
assert args == ["arg1", "arg2"]
|
|
|
|
assert len(obs) == 5
|
|
|
|
exp = {"stdin": "a", "stdout": "b", "stderr": "c", "spec": "d", "stack": "e"}
|
|
|
|
assert obs == exp
|
2019-02-04 16:15:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
def _return_to_sender_handles(args, stdin, stdout, stderr):
|
|
|
|
return args, {"stdin": stdin, "stdout": stdout, "stderr": stderr}
|
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_recursive_callable_partial_handles(xession):
|
2019-02-04 16:15:29 -05:00
|
|
|
ales = Aliases({"rtn": _return_to_sender_handles, "rtn-recurse": ["rtn", "arg1"]})
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
alias = ales.get("rtn-recurse")[0]
|
2019-02-04 16:15:29 -05:00
|
|
|
assert callable(alias)
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
args, obs = alias(["arg1", "arg2"], stdin="a", stdout="b", stderr="c")
|
2019-02-04 16:15:29 -05:00
|
|
|
assert args == ["arg1", "arg2"]
|
|
|
|
assert len(obs) == 3
|
|
|
|
exp = {"stdin": "a", "stdout": "b", "stderr": "c"}
|
|
|
|
assert obs == exp
|
|
|
|
|
|
|
|
|
2024-07-13 14:55:46 +02:00
|
|
|
def test_expand_alias():
|
|
|
|
ales = Aliases()
|
|
|
|
ales["ls"] = ["ls", "-G"]
|
|
|
|
ales["ff"] = lambda args: print(args)
|
|
|
|
exp_ls = ales.expand_alias("ls ", 3)
|
|
|
|
exp_ff = ales.expand_alias("ff ", 3)
|
|
|
|
assert exp_ls == "ls -G "
|
|
|
|
assert exp_ff == "ff "
|
|
|
|
|
|
|
|
|
2019-02-04 16:15:29 -05:00
|
|
|
def _return_to_sender_none():
|
|
|
|
return "wakka", {}
|
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_recursive_callable_partial_none(xession):
|
2019-02-04 16:15:29 -05:00
|
|
|
ales = Aliases({"rtn": _return_to_sender_none, "rtn-recurse": ["rtn"]})
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
alias = ales.get("rtn-recurse")[0]
|
2019-02-04 16:15:29 -05:00
|
|
|
assert callable(alias)
|
|
|
|
args, obs = alias()
|
|
|
|
assert args == "wakka"
|
|
|
|
assert len(obs) == 0
|
2019-08-16 15:17:31 -04:00
|
|
|
|
2020-02-14 09:09:34 -05:00
|
|
|
|
2019-08-16 15:17:31 -04:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"alias",
|
|
|
|
[
|
|
|
|
"echo 'hi' and echo 'there'",
|
|
|
|
"echo 'hi' or echo 'there'",
|
|
|
|
"echo 'hi' && echo 'there'",
|
|
|
|
"echo 'hi' || echo 'there'",
|
|
|
|
"echo 'hi'; echo 'there'",
|
|
|
|
],
|
|
|
|
)
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_subprocess_logical_operators(xession, alias):
|
2019-08-16 15:17:31 -04:00
|
|
|
ales = make_aliases()
|
|
|
|
ales["echocat"] = alias
|
|
|
|
assert isinstance(ales["echocat"], ExecAlias)
|
2020-08-11 17:30:08 +03:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"alias",
|
|
|
|
[
|
|
|
|
"echo 'hi' | grep h",
|
|
|
|
"echo 'hi' > file",
|
|
|
|
"cat < file",
|
|
|
|
"COMMAND1 e>o < input.txt | COMMAND2 > output.txt e>> errors.txt",
|
|
|
|
"echo 'h|i' | grep h",
|
|
|
|
"echo 'h|i << x > 3' | grep x",
|
|
|
|
],
|
|
|
|
)
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_subprocess_io_operators(xession, alias):
|
2020-08-11 17:30:08 +03:00
|
|
|
ales = make_aliases()
|
|
|
|
ales["echocat"] = alias
|
|
|
|
assert isinstance(ales["echocat"], ExecAlias)
|
2021-01-04 19:44:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"alias",
|
|
|
|
[
|
2021-05-20 15:44:26 +05:30
|
|
|
{"echocat": "ls"},
|
2021-01-04 19:44:21 +02:00
|
|
|
],
|
|
|
|
)
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_dict_merging(xession, alias):
|
2021-01-04 19:44:21 +02:00
|
|
|
ales = make_aliases()
|
2021-05-20 15:44:26 +05:30
|
|
|
assert (ales | alias)["echocat"] == ["ls"]
|
|
|
|
assert (alias | ales)["echocat"] == ["ls"]
|
|
|
|
assert "echocat" not in ales
|
2021-01-04 19:44:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"alias",
|
|
|
|
[
|
2021-05-20 15:44:26 +05:30
|
|
|
{"echocat": "echo Why do people still use python2.7?"},
|
|
|
|
{"echocat": "echo Why?"},
|
2021-01-04 19:44:21 +02:00
|
|
|
],
|
|
|
|
)
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_dict_merging_assignment(xession, alias):
|
2021-01-04 19:44:21 +02:00
|
|
|
ales = make_aliases()
|
|
|
|
ales |= alias
|
|
|
|
|
2021-05-20 15:44:26 +05:30
|
|
|
assert "echocat" in ales
|
|
|
|
assert " ".join(ales["echocat"]) == alias["echocat"]
|
2021-01-04 19:44:21 +02:00
|
|
|
|
|
|
|
ales = make_aliases()
|
|
|
|
alias |= ales
|
|
|
|
|
2021-05-20 15:44:26 +05:30
|
|
|
assert "o" in alias
|
|
|
|
assert alias["o"] == ales["o"]
|
2021-04-15 16:39:13 +03:00
|
|
|
|
|
|
|
|
2022-01-08 04:03:22 +05:30
|
|
|
def test_exec_alias_args(xession):
|
2021-04-15 16:39:13 +03:00
|
|
|
stack = inspect.stack()
|
|
|
|
try:
|
2021-05-20 15:44:26 +05:30
|
|
|
ExecAlias("myargs = $args")(["arg0"], stack=stack)
|
|
|
|
ExecAlias("myarg0 = $arg0")(["arg0"], stack=stack)
|
2021-04-15 16:39:13 +03:00
|
|
|
except KeyError:
|
2021-09-26 21:02:24 +05:30
|
|
|
assert False # noqa
|
2021-04-15 16:39:13 +03:00
|
|
|
|
2021-05-20 15:44:26 +05:30
|
|
|
assert stack[0][0].f_locals["myargs"] == ["arg0"]
|
|
|
|
assert stack[0][0].f_locals["myarg0"] == "arg0"
|
2022-01-21 11:00:23 +00:00
|
|
|
|
|
|
|
|
2022-06-06 01:13:22 -04:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"exp_rtn",
|
|
|
|
[0, 1, 2],
|
|
|
|
)
|
|
|
|
def test_exec_alias_return_value(exp_rtn, xonsh_session, monkeypatch):
|
|
|
|
monkeypatch.setitem(xonsh_session.env, "RAISE_SUBPROC_ERROR", False)
|
|
|
|
stack = inspect.stack()
|
2022-08-09 08:42:40 -07:00
|
|
|
rtn = ExecAlias(f"{sys.executable} -c 'exit({exp_rtn})'")([], stack=stack)
|
2022-06-06 01:13:22 -04:00
|
|
|
assert rtn == exp_rtn
|
|
|
|
|
|
|
|
|
2022-01-21 11:00:23 +00:00
|
|
|
def test_register_decorator(xession):
|
|
|
|
aliases = Aliases()
|
|
|
|
|
|
|
|
@aliases.register
|
2024-01-30 12:23:50 +01:00
|
|
|
def debug(): ...
|
2022-01-21 11:00:23 +00:00
|
|
|
|
|
|
|
@aliases.register("name")
|
2024-01-30 12:23:50 +01:00
|
|
|
def with_options(): ...
|
2022-01-21 11:00:23 +00:00
|
|
|
|
|
|
|
@aliases.register
|
2024-01-30 12:23:50 +01:00
|
|
|
def _private(): ...
|
2022-01-21 11:00:23 +00:00
|
|
|
|
|
|
|
assert set(aliases) == {"debug", "name", "private"}
|
Alias that returns modified command (#5473)
* Command Alias
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* news
* docs
* tests
* docs
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* tests
* tests
* clean
* news
* news
* bumptests
* bumptests
* new api
* tests
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* doooocs
* comments
* comments
* comments
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* aliases.CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* aliases.CUT_ARGS
* comments
* bump test
* remove CUT_ARGS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test
* test
* wip
* revert
* wip
* wip
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* wip
* docs
* news
* tests
* tests
* test
* test
* test
* Update docs/tutorial.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update xonsh/aliases.py
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix, thanks jaraco!
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* more comments
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* cleaning
---------
Co-authored-by: a <1@1.1>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-07-12 01:35:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_run_alias_by_params():
|
|
|
|
def alias_named_params(args, stdout):
|
|
|
|
return (args, stdout)
|
|
|
|
|
|
|
|
def alias_named_params_rev(stdout, args):
|
|
|
|
return (args, stdout)
|
|
|
|
|
|
|
|
def alias_list_params(a, i, o, e):
|
|
|
|
return (a, i, o, e)
|
|
|
|
|
|
|
|
assert run_alias_by_params(alias_named_params, {"args": 1, "stdout": 2}) == (1, 2)
|
|
|
|
assert run_alias_by_params(alias_named_params_rev, {"args": 1, "stdout": 2}) == (
|
|
|
|
1,
|
|
|
|
2,
|
|
|
|
)
|
|
|
|
assert run_alias_by_params(alias_list_params, {"args": 1, "stderr": 4}) == (
|
|
|
|
1,
|
|
|
|
None,
|
|
|
|
None,
|
|
|
|
4,
|
|
|
|
)
|