forked from pyenv-win/pyenv-win
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_pyenv_feature_global.py
80 lines (56 loc) · 2.89 KB
/
test_pyenv_feature_global.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import pytest
from test_pyenv_helpers import not_installed_output, global_python_versions, Native, Arch
def pyenv_global_help():
return (f"Usage: pyenv global <version>\r\n"
f" pyenv global --unset")
def test_global_help(pyenv):
for args in [
["--help", "global"],
["help", "global"],
["global", "--help"],
]:
stdout, stderr = pyenv(*args)
assert ("\r\n".join(stdout.splitlines()[:2]), stderr) == (pyenv_global_help(), "")
def test_global_no_version(pyenv):
assert pyenv("global") == ("no global version configured", "")
@pytest.mark.parametrize('settings', [lambda: {'global_ver': Native("3.8.9")}])
def test_global_version_defined(pyenv):
assert pyenv("global") == (Native("3.8.9"), "")
@pytest.mark.parametrize('settings', [lambda: {
'versions': [Native("3.7.7"), Native("3.8.9")],
'global_ver': Native("3.8.9")
}])
def test_global_set_installed_version(pyenv):
assert pyenv("global", Arch("3.7")) == ("", "")
assert pyenv("global") == (Arch("3.7"), "")
assert pyenv("global", Arch("3.7.7")) == ("", "")
assert pyenv("global") == (Arch("3.7.7"), "")
assert pyenv("global", Native("3.7.7")) == ("", "")
assert pyenv("global") == (Native("3.7.7"), "")
@pytest.mark.parametrize('settings', [lambda: {
'versions': [Native("3.8.9")],
'global_ver': Native("3.8.9"),
}])
def test_global_set_unknown_version(pyenv):
assert pyenv("global", Arch("3.7")) == (not_installed_output(Arch("3.7")), "")
assert pyenv("global", Arch("3.7.8")) == (not_installed_output(Arch("3.7.8")), "")
assert pyenv("global", Native("3.7.8")) == (not_installed_output(Native("3.7.8")), "")
@pytest.mark.parametrize('settings', [lambda: {
'versions': [Native("3.8.9")],
'global_ver': Native("3.8.9"),
}])
def test_global_unset(pyenv):
assert pyenv("global", "--unset") == ("", "")
assert pyenv("global") == ("no global version configured", "")
@pytest.mark.parametrize('settings', [lambda: {'versions': [Native("3.7.7"), Native("3.8.9")]}])
def test_global_set_many_versions(pyenv_path, pyenv):
assert pyenv('global', Arch("3.7.7"), Arch("3.8.9")) == ("", "")
assert global_python_versions(pyenv_path) == "\n".join([Arch('3.7.7'), Arch('3.8.9')])
assert pyenv('global', Arch("3.7.7"), Arch("3.8.9")) == ("", "")
assert global_python_versions(pyenv_path) == "\n".join([Arch('3.7.7'), Arch('3.8.9')])
@pytest.mark.parametrize('settings', [lambda: {'versions': [Native("3.7.7")]}])
def test_global_set_many_versions_one_not_installed(pyenv):
assert pyenv('global', Arch("3.7.7"), Arch("3.8.9")) == (not_installed_output(Arch("3.8.9")), "")
@pytest.mark.parametrize('settings', [lambda: {'global_ver': [Native('3.7.7'), Native('3.8.9')]}])
def test_global_many_versions_defined(pyenv):
assert pyenv('global') == ("\r\n".join([Native('3.7.7'), Native('3.8.9')]), "")