Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion py_env_create
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,9 @@ function is_version2_ge_version1 {
# Handle an environment that already exists
#
function conda_env_exists {
${condamamba} env list | grep -oE "/$1$" | wc -l
# Not using ${condamamba} because, at least as of mamba 2.3.1, it doesn't always show environment
Comment thread
samsrabin marked this conversation as resolved.
# names. See https://github.com/mamba-org/mamba/issues/4045
conda env list | grep -oE "/$1$" | wc -l
}
function rename_existing_env {
if [[ "$CONDA_DEFAULT_ENV" == *"$1" ]]; then
Expand Down
19 changes: 14 additions & 5 deletions python/ctsm/test/test_sys_py_env_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,11 @@ def setUp(self):
self.py_env_create = os.path.join(path_to_ctsm_root(), "py_env_create")
assert os.path.exists(self.py_env_create)

# Get path to testing condafile
# Get path to testing conda/mambafile:
# conda needs a completely empty file (# comments okay) as of 25.5.1, but mamba as of 2.3.1
# needs at least some YML structure.
self.empty_condafile = os.path.join(path_to_ctsm_root(), "python", "empty.txt")
assert os.path.exists(self.empty_condafile)
self.empty_mambafile = os.path.join(path_to_ctsm_root(), "python", "empty.yml")

# Set up other variables
self.env_names = []
Expand All @@ -89,7 +91,12 @@ def _create_empty_env(self, check=None, extra_args=None, expect_error=False, new
self.env_names.append(get_unique_env_name(5))

# Form and run command
cmd = [self.py_env_create, "-n", self.env_names[-1], "-f", self.empty_condafile, "--yes"]
if extra_args is not None and ("-m" in extra_args or "--mamba" in extra_args):
empty_file = self.empty_mambafile
Comment thread
samsrabin marked this conversation as resolved.
else:
empty_file = self.empty_condafile
assert os.path.exists(empty_file)
cmd = [self.py_env_create, "-n", self.env_names[-1], "-f", empty_file, "--yes"]
if extra_args:
cmd += extra_args
out = subprocess.run(cmd, capture_output=True, text=True, check=False)
Expand Down Expand Up @@ -327,7 +334,8 @@ def test_complete_py_env_create(self):
raise e
env_list = get_conda_envs()
for env_name in self.env_names:
assert does_env_exist(env_name, env_list)
if not does_env_exist(env_name, env_list):
Comment thread
samsrabin marked this conversation as resolved.
raise AssertionError(f"environment not found: {env_name}")

def test_complete_py_env_create_mamba(self):
"""
Expand Down Expand Up @@ -358,7 +366,8 @@ def test_complete_py_env_create_mamba(self):
raise e
env_list = get_conda_envs()
for env_name in self.env_names:
assert does_env_exist(env_name, env_list)
if not does_env_exist(env_name, env_list):
raise AssertionError(f"environment not found: {env_name}")


if __name__ == "__main__":
Expand Down
6 changes: 6 additions & 0 deletions python/empty.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# An empty file for use in testing py_env_create
Comment thread
samsrabin marked this conversation as resolved.
Outdated
#
channels:
- conda-forge
- defaults
dependencies:
Loading