diff --git a/src/ocrd/resource_manager.py b/src/ocrd/resource_manager.py index 9d1e6ac596..61f93fadc1 100644 --- a/src/ocrd/resource_manager.py +++ b/src/ocrd/resource_manager.py @@ -36,7 +36,16 @@ def __init__(self, userdir=None, xdg_config_home=None, xdg_data_home=None, skip_ self._xdg_data_home = xdg_data_home self._xdg_config_home = xdg_config_home self._userdir = userdir + import os + # import traceback + # traceback.print_stack() + print('os.environ.HOME', os.environ['HOME']) + print('config.HOME', config.HOME) + print('config.XDG_CONFIG_HOME', config.XDG_CONFIG_HOME) + print('xdg_config_home', xdg_config_home) + print('self.xdg_config_home', self.xdg_config_home) self.user_list = Path(self.xdg_config_home, 'ocrd', 'resources.yml') + # print(self.user_list) if not skip_init: self.load_resource_list(Path(RESOURCE_LIST_FILENAME)) @@ -60,9 +69,9 @@ def xdg_data_home(self): @property def xdg_config_home(self): - if not self._xdg_config_home: - self._xdg_config_home = config.XDG_CONFIG_HOME - return self._xdg_config_home + if self._xdg_config_home: + return self._xdg_config_home + return config.XDG_CONFIG_HOME def save_user_list(self, database=None): if not database: diff --git a/src/ocrd_utils/config.py b/src/ocrd_utils/config.py index 7b4538223b..cc12a31152 100644 --- a/src/ocrd_utils/config.py +++ b/src/ocrd_utils/config.py @@ -179,10 +179,12 @@ def _ocrd_download_timeout_parser(val): config.add("XDG_DATA_HOME", description="Directory to look for `./ocrd/resources.yml` (i.e. `ocrd resmgr` user database)", + parser=lambda val: Path(val), default=(True, lambda: Path(config.HOME, '.local/share'))) config.add("XDG_CONFIG_HOME", description="Directory to look for `./ocrd-resources/*` (i.e. `ocrd resmgr` data location)", + parser=lambda val: Path(val), default=(True, lambda: Path(config.HOME, '.config'))) config.add("OCRD_LOGGING_DEBUG", diff --git a/tests/test_resource_manager.py b/tests/test_resource_manager.py index 427882cc25..9a0e7dc602 100644 --- a/tests/test_resource_manager.py +++ b/tests/test_resource_manager.py @@ -3,6 +3,7 @@ import pdb from ocrd.resource_manager import OcrdResourceManager +from ocrd_utils import config from ocrd_utils.os import get_ocrd_tool_json from pytest import raises, fixture @@ -20,17 +21,19 @@ def test_resources_manager_config_default(monkeypatch, tmp_path): # arrange monkeypatch.setenv('HOME', str(tmp_path)) + monkeypatch.delenv('XDG_CONFIG_HOME') # act mgr = OcrdResourceManager() - mgr._xdg_config_home = None # assert default_config_dir = os.path.join(os.environ['HOME'], '.config', 'ocrd') f = Path(default_config_dir) / CONST_RESOURCE_YML assert os.environ['HOME'] == str(tmp_path) - assert f.exists() + assert config.HOME == tmp_path + assert Path.home() == tmp_path assert f == mgr.user_list + assert f.exists() assert mgr.add_to_user_database('ocrd-foo', f) # pdb.set_trace()