xonsh/tests/aliases/test_completer_alias.py
Noorhteen Raja NJ 7c4e207abd
update test xsh usage (#4581)
* todo

* test: remove usage of DummyEnv and setting .env attribute on xession fixture

one step closer to making too much of tweaking to xession during tests

* test: fix tests vox and gitstatus-prompt

* docs: update test-fixture usage

* fix: import flake8 error

* test: remove direct access to XSH in tests

* test: remove usage of XSH in test files

* todo

* test: use tmp-dir to create stubs

* refactor: use fixture factory to mock out XonshSession

* refactor: remove direct access of XSH from functions

* refactor: remove direct access of XSH from functions

* fix: qa checks

* refactor: rename variables to match their values

* test: update failing tests because it had no PATH set previously

* fix: remove builtins usage from pyghooks.py

* style:

* refactor: update tests to use fixtures

* fix: env varialbe is setup per function

some tests accidentally update the env variables and that is leaking
into next tests

* fix: failing vox tests

* test: set commands_cache per test

* test: fix failing tests

* fix: failing tests on linux

ptk-highlight

* fix: failing tests on Windows

cwd-prompt

* test: copy env as to not affect original object

* fix: lazily evaluate cmds-cache in pyghooks

* test: fix failing tests

* fix: qa errors import

* test: set commands-cache per test

while caching path results

* test: speedup test_thread_local_swap

* fix: failing tests on windows

* refactor: Execer doesn't control session

* refactor: XSH.unload will take care of reversing builtins attrs set

* test: use env.update over monkeypatch

* Revert "test: use env.update over monkeypatch"

This reverts commit 010a5022247a098f1741966b8af1bf758663480e.
2022-01-07 17:33:22 -05:00

35 lines
1.1 KiB
Python

import pytest
from xonsh.completers._aliases import add_one_completer
from xonsh.completers.tools import non_exclusive_completer
SIMPLE = lambda: None
NON_EXCLUSIVE = non_exclusive_completer(lambda: None)
@pytest.mark.parametrize(
"initial, exp",
(
({}, ["new"]),
({"simp": SIMPLE}, ["new", "simp"]),
({"nx": NON_EXCLUSIVE}, ["nx", "new"]),
({"nx": NON_EXCLUSIVE, "simp": SIMPLE}, ["nx", "new", "simp"]),
(
{"ctx1": NON_EXCLUSIVE, "ctx2": NON_EXCLUSIVE, "simp": SIMPLE},
["ctx1", "ctx2", "new", "simp"],
),
(
{"ctx1": NON_EXCLUSIVE, "ctx2": NON_EXCLUSIVE, "simp": SIMPLE},
["ctx1", "ctx2", "new", "simp"],
),
(
{"ctx1": NON_EXCLUSIVE, "simp": SIMPLE, "ctx2": NON_EXCLUSIVE},
["ctx1", "new", "simp", "ctx2"],
),
),
)
def test_add_completer_start(monkeypatch, initial, exp, xession):
xession.completers.clear()
xession.completers.update(initial)
add_one_completer("new", SIMPLE, "start")
assert list(xession.completers.keys()) == exp