From 2c45251db9de1e75db1a3f4365413a65e1e34811 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Tue, 18 Dec 2012 20:27:36 -0800 Subject: [PATCH] clean configuration for testing This way, unit tests will never see a user's global beets configuration. --- beets/__init__.py | 2 +- beets/ui/__init__.py | 6 +++++- test/_common.py | 6 ++++-- test/test_ui.py | 4 +++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/beets/__init__.py b/beets/__init__.py index e7108035e..9b4d40b92 100644 --- a/beets/__init__.py +++ b/beets/__init__.py @@ -20,4 +20,4 @@ from beets.util import confit Library = beets.library.Library -config = confit.Configuration('beets', __name__) +config = confit.Configuration('beets', __name__, False) diff --git a/beets/ui/__init__.py b/beets/ui/__init__.py index 15a244aa8..c8eab799d 100644 --- a/beets/ui/__init__.py +++ b/beets/ui/__init__.py @@ -607,10 +607,14 @@ class SubcommandsOptionParser(optparse.OptionParser): # The root parser and its main function. -def _raw_main(args): +def _raw_main(args, load_config=True): """A helper function for `main` without top-level exception handling. """ + # Load global configuration files. + if load_config: + config.read() + # Get the default subcommands. from beets.ui.commands import default_commands diff --git a/test/_common.py b/test/_common.py index d730d0e0a..abba041f2 100644 --- a/test/_common.py +++ b/test/_common.py @@ -88,10 +88,12 @@ class TestCase(unittest.TestCase): completes. Also provides some additional assertion methods. """ def setUp(self): - self.old_sources = copy.deepcopy(beets.config.sources) + # A "clean" source list including only the defaults. + beets.config.sources = [] + beets.config.read(user=False, defaults=True) def tearDown(self): - beets.config.sources = self.old_sources + pass def assertExists(self, path): self.assertTrue(os.path.exists(path), diff --git a/test/test_ui.py b/test/test_ui.py index 8444a9e35..5bdd06c4b 100644 --- a/test/test_ui.py +++ b/test/test_ui.py @@ -443,9 +443,11 @@ class PrintTest(_common.TestCase): class AutotagTest(_common.TestCase): def setUp(self): + super(AutotagTest, self).setUp() self.io = _common.DummyIO() self.io.install() def tearDown(self): + super(AutotagTest, self).tearDown() self.io.restore() def _no_candidates_test(self, result): @@ -506,7 +508,7 @@ class ConfigTest(_common.TestCase): if config_yaml: config_data = yaml.load(config_yaml, Loader=confit.Loader) config.set(config_data) - ui._raw_main(args + ['test']) + ui._raw_main(args + ['test'], False) def test_paths_section_respected(self): def func(lib, opts, args):