import pytest import tempfile from pathlib import Path import os import shutil from nwb_linkml.config import Config def test_config_dir(): """Ensure that the temporary directory is the same across multiple instantiations of the singleton-like config object""" c1 = Config() c2 = Config() assert c1.cache_dir == c2.cache_dir def test_config_env(): """ Base cache dir can be overridden by environmental variable """ orig_env = os.environ['NWB_LINKML_CACHE_DIR'] new_temp = Path(tempfile.gettempdir()) / 'test_tmp_dir' new_temp.mkdir() try: assert Path(orig_env) != new_temp os.environ['NWB_LINKML_CACHE_DIR'] = str(new_temp) conf = Config() assert conf.cache_dir == new_temp finally: shutil.rmtree(new_temp) os.environ['NWB_LINKML_CACHE_DIR'] = orig_env