From 52136736169589767ea1129546d2402eea5af6bf Mon Sep 17 00:00:00 2001 From: Travis Wrightsman Date: Fri, 22 Jun 2018 20:26:21 +0200 Subject: [PATCH] pre-resolve package path for lazy-load configuration `test_ui.ConfigTest.test_command_line_option_relative_to_working_dir` was failing because it changes working directories before the relative lazy-loaded default configuration path is resolved (`../beets/__init__.py`), later causing a `beets.util.confit.NotFoundError`. The Configuration object has been modified so that lazy-load configurations resolve the path in advance. --- beets/util/confit.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/beets/util/confit.py b/beets/util/confit.py index b5513f48e..29afd02e7 100644 --- a/beets/util/confit.py +++ b/beets/util/confit.py @@ -794,6 +794,8 @@ class Configuration(RootView): super(Configuration, self).__init__([]) self.appname = appname self.modname = modname + # Pre-resolve default source location + self._package_path = _package_path(appname) self._env_var = '{0}DIR'.format(self.appname.upper()) @@ -822,9 +824,8 @@ class Configuration(RootView): `modname` if it was given. """ if self.modname: - pkg_path = _package_path(self.modname) - if pkg_path: - filename = os.path.join(pkg_path, DEFAULT_FILENAME) + if self._package_path: + filename = os.path.join(self._package_path, DEFAULT_FILENAME) if os.path.isfile(filename): self.add(ConfigSource(load_yaml(filename), filename, True))