spawner/tests/test_micromamba.py

36 lines
1.2 KiB
Python

"""Test python environment module."""
from pathlib import Path
from glicid_spawner import micromamba
MICROMAMBA_ROOT = Path(__file__).parent / 'data' / 'micromamba'
def test_micromamba_envs_getter(monkeypatch):
"""Test micromamba envs getter."""
monkeypatch.setattr(micromamba, 'MICROMAMBA_ROOT', MICROMAMBA_ROOT)
monkeypatch.setattr(micromamba, 'GLOBAL_USER', 'global')
# User with micromamba envs
envs = micromamba.get_envs('john-doe')
assert len(envs) == 3
assert [env.scope for env in envs] == ['USER', 'USER', 'GLOBAL']
assert [env.name for env in envs] == ['bar', 'foo', 'baz'] # `qux` doesn't have `kernel.json`
assert [env.path for env in envs] == [
# Sorted by groups (user > team > global)
str(MICROMAMBA_ROOT / 'john-doe' / 'envs' / 'bar'),
str(MICROMAMBA_ROOT / 'john-doe' / 'envs' / 'foo'),
str(MICROMAMBA_ROOT / 'global' / 'envs' / 'baz'),
]
# User without micromamba envs, only global envs listed
envs = micromamba.get_envs('jane-smith')
assert len(envs) == 1
assert [env.scope for env in envs] == ['GLOBAL']
assert [env.name for env in envs] == ['baz']
assert [env.path for env in envs] == [
str(MICROMAMBA_ROOT / 'global' / 'envs' / 'baz'),
]