"""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'), ]