1import builtins
2
3import pytest
4from unittest.mock import patch
5
6from xonsh.environ import Env
7import xonsh.completers.path as xcp
8
9
10@pytest.fixture(autouse=True)
11def xonsh_execer_autouse(xonsh_builtins, xonsh_execer):
12    return xonsh_execer
13
14
15def test_pattern_need_quotes():
16    # just make sure the regex compiles
17    xcp.PATTERN_NEED_QUOTES.match("")
18
19
20def test_complete_path(xonsh_builtins):
21    xonsh_builtins.__xonsh_env__ = {
22        "CASE_SENSITIVE_COMPLETIONS": False,
23        "GLOB_SORTED": True,
24        "SUBSEQUENCE_PATH_COMPLETION": False,
25        "FUZZY_PATH_COMPLETION": False,
26        "SUGGEST_THRESHOLD": 3,
27        "CDPATH": set(),
28    }
29    xcp.complete_path("[1-0.1]", "[1-0.1]", 0, 7, dict())
30
31
32@patch("xonsh.completers.path._add_cdpaths")
33def test_cd_path_no_cd(mock_add_cdpaths, xonsh_builtins):
34    xonsh_builtins.__xonsh_env__ = {
35        "CASE_SENSITIVE_COMPLETIONS": False,
36        "GLOB_SORTED": True,
37        "SUBSEQUENCE_PATH_COMPLETION": False,
38        "FUZZY_PATH_COMPLETION": False,
39        "SUGGEST_THRESHOLD": 3,
40        "CDPATH": ["/"],
41    }
42    xcp.complete_path("a", "cat a", 4, 5, dict())
43    mock_add_cdpaths.assert_not_called()
44