Source code for isofit.test.test_env

from pathlib import Path

import pytest

from isofit import ray
from isofit.data import env


[docs] def normalize(paths): return {key: Path(path).as_posix().replace("D:", "") for key, path in paths.items()}
@pytest.fixture(scope="session")
[docs] def changedDirs(): env.reset() # Changed dirs dirs = {key: f"/abc/{key}" for key in env._dirs} # Default keys keys = {key: env[key] for key in env._keys} return normalize({**dirs, **keys})
@pytest.fixture(scope="session")
[docs] def changedKeys(): env.reset() # Default dirs dirs = {key: env[key] for key in env._dirs} # Changed keys keys = {key: f"/xyz/{key}" for key in env._keys} return normalize({**dirs, **keys})
@pytest.fixture(scope="session")
[docs] def changedBoth(changedDirs, changedKeys): both = {} for key in env._dirs: both[key] = changedDirs[key] for key in env._keys: both[key] = changedKeys[key] return both
[docs] def test_changePath(changedDirs): env.reset() for key in env._dirs: env.changePath(key, changedDirs[key]) assert normalize(dict(env)) == changedDirs
[docs] def test_changeKey(changedKeys): env.reset() for key in env._keys: env.changeKey(key, changedKeys[key]) assert normalize(dict(env)) == changedKeys
[docs] def test_changeBase(changedDirs): env.reset() env.changeBase("/abc") assert normalize(dict(env)) == changedDirs
@ray.remote
[docs] def check_ini(): from isofit.data import env return env.ini
[docs] def test_custom_ini(tmp_path: Path): ini = tmp_path / "custom_test.ini" ini.write_text(f"[DEFAULT]\ndata = {tmp_path}") env.load(ini) remote = ray.get(check_ini.remote()) assert env.ini == remote, "The custom ini was not loaded in a child ray process"
[docs] def test_raise_path_errors(): # Make sure an exception is not raised env.path("data", "fake.file") # Now make sure it is raised env.changeKey("raise_path_errors", True) with pytest.raises(FileNotFoundError): env.path("data", "fake.file")