spawner/tests/test_micromamba.py

37 lines
1.2 KiB
Python
Raw Normal View History

"""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')
monkeypatch.setattr(micromamba, 'GLOBAL_EXCLUDED', 'qux')
# 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']
assert [env.path for env in envs] == [
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'),
]