forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathtest_create_conda.py
More file actions
71 lines (54 loc) · 2.03 KB
/
test_create_conda.py
File metadata and controls
71 lines (54 loc) · 2.03 KB
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
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
import importlib
import sys
import pytest
import create_conda
@pytest.mark.parametrize("env_exists", [True, False])
@pytest.mark.parametrize("git_ignore", [True, False])
@pytest.mark.parametrize("install", [True, False])
@pytest.mark.parametrize("python", [True, False])
def test_create_env(env_exists, git_ignore, install, python):
importlib.reload(create_conda)
create_conda.conda_env_exists = lambda _n: env_exists
install_packages_called = False
def install_packages(_name):
nonlocal install_packages_called
install_packages_called = True
create_conda.install_packages = install_packages
run_process_called = False
def run_process(args, error_message):
nonlocal run_process_called
run_process_called = True
version = "12345" if python else f"{sys.version_info.major}.{sys.version_info.minor}"
if not env_exists:
assert args == [
sys.executable,
"-m",
"conda",
"create",
"--yes",
"--prefix",
create_conda.CONDA_ENV_NAME,
f"python={version}",
]
assert error_message == "CREATE_CONDA.ENV_FAILED_CREATION"
create_conda.run_process = run_process
add_gitignore_called = False
def add_gitignore(_name):
nonlocal add_gitignore_called
add_gitignore_called = True
create_conda.add_gitignore = add_gitignore
args = []
if git_ignore:
args.append("--git-ignore")
if install:
args.append("--install")
if python:
args.extend(["--python", "12345"])
create_conda.main(args)
assert install_packages_called == install
# run_process is called when the venv does not exist
assert run_process_called != env_exists
# add_gitignore is called when new venv is created and git_ignore is True
assert add_gitignore_called == (not env_exists and git_ignore)