From 48dea2ea0ce93b80484abac6875da4fdf5a20ce7 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Thu, 8 Aug 2013 15:35:23 -0400 Subject: testsuite: fixed unit tests for server plugins --- .../Testlib/TestServer/TestPlugin/Testhelpers.py | 60 ++++++++++++++++------ 1 file changed, 45 insertions(+), 15 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py') diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py index 3439d475f..7006e29e3 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py @@ -51,22 +51,28 @@ class TestFunctions(Bcfg2TestCase): class TestDatabaseBacked(TestPlugin): test_obj = DatabaseBacked + def setUp(self): + TestPlugin.setUp(self) + set_setup_default("%s_db" % self.test_obj.__name__.lower(), False) + @skipUnless(HAS_DJANGO, "Django not found") def test__use_db(self): - db = self.get_obj() + core = Mock() + db = self.get_obj(core=core) + attr = "%s_db" % self.test_obj.__name__.lower() - Bcfg2.Options.setup.databasebacked_db = True + db.core.database_available = True + setattr(Bcfg2.Options.setup, attr, True) self.assertTrue(db._use_db) - Bcfg2.Options.setup.databasebacked_db = False + setattr(Bcfg2.Options.setup, attr, False) self.assertFalse(db._use_db) - Bcfg2.Server.Plugin.helpers.HAS_DJANGO = False + db.core.database_available = False self.assertFalse(db._use_db) - Bcfg2.Options.setup.databasebacked_db = False + setattr(Bcfg2.Options.setup, attr, True) self.assertFalse(db._use_db) - Bcfg2.Server.Plugin.helpers.HAS_DJANGO = True class TestPluginDatabaseModel(Bcfg2TestCase): @@ -74,14 +80,17 @@ class TestPluginDatabaseModel(Bcfg2TestCase): pass -class TestFileBacked(Bcfg2TestCase): +class TestFileBacked(TestDebuggable): test_obj = FileBacked path = os.path.join(datastore, "test") + def setUp(self): + TestDebuggable.setUp(self) + set_setup_default("filemonitor", MagicMock()) + def get_obj(self, path=None): if path is None: path = self.path - set_setup_default("filemonitor", MagicMock()) return self.test_obj(path) @patch("%s.open" % builtins) @@ -110,7 +119,7 @@ class TestFileBacked(Bcfg2TestCase): self.assertFalse(fb.Index.called) -class TestDirectoryBacked(Bcfg2TestCase): +class TestDirectoryBacked(TestDebuggable): test_obj = DirectoryBacked testpaths = {1: '', 2: '/foo', @@ -124,6 +133,10 @@ class TestDirectoryBacked(Bcfg2TestCase): badevents = [] # DirectoryBacked handles all files, so there's no # such thing as a bad event + def setUp(self): + TestDebuggable.setUp(self) + set_setup_default("filemonitor", MagicMock()) + def test_child_interface(self): """ ensure that the child object has the correct interface """ self.assertTrue(hasattr(self.test_obj.__child__, "HandleEvent")) @@ -133,7 +146,6 @@ class TestDirectoryBacked(Bcfg2TestCase): if fam is None: fam = Mock() - set_setup_default("filemonitor", MagicMock()) @patch("%s.%s.add_directory_monitor" % (self.test_obj.__module__, self.test_obj.__name__), Mock()) @@ -378,11 +390,13 @@ class TestXMLFileBacked(TestFileBacked): should_monitor = None path = os.path.join(datastore, "test", "test1.xml") + def setUp(self): + TestFileBacked.setUp(self) + set_setup_default("encoding", 'utf-8') + def get_obj(self, path=None, should_monitor=False): if path is None: path = self.path - set_setup_default("filemonitor", MagicMock()) - set_setup_default("encoding", 'utf-8') @patchIf(not isinstance(os.path.exists, Mock), "os.path.exists", Mock()) @@ -1158,6 +1172,11 @@ class TestXMLDirectoryBacked(TestDirectoryBacked): class TestPrioDir(TestPlugin, TestGenerator, TestXMLDirectoryBacked): test_obj = PrioDir + def setUp(self): + TestPlugin.setUp(self) + TestGenerator.setUp(self) + TestXMLDirectoryBacked.setUp(self) + def get_obj(self, core=None): if core is None: core = Mock() @@ -1331,10 +1350,14 @@ class TestSpecificity(Bcfg2TestCase): self.assertGreaterEqual(specs[j], specs[i]) -class TestSpecificData(Bcfg2TestCase): +class TestSpecificData(TestDebuggable): test_obj = SpecificData path = os.path.join(datastore, "test.txt") + def setUp(self): + TestDebuggable.setUp(self) + set_setup_default("encoding", "utf-8") + def get_obj(self, name=None, specific=None): if name is None: name = self.path @@ -1382,7 +1405,8 @@ class TestEntrySet(TestDebuggable): ignore = ["foo~", ".#foo", ".foo.swp", ".foo.swx", "test.txt.genshi_include", "test.G_foo.genshi_include"] - def get_obj(self, basename="test", path=datastore, entry_type=MagicMock()): + def setUp(self): + TestDebuggable.setUp(self) set_setup_default("default_owner") set_setup_default("default_group") set_setup_default("default_mode") @@ -1390,6 +1414,8 @@ class TestEntrySet(TestDebuggable): set_setup_default("default_important", False) set_setup_default("default_paranoid", False) set_setup_default("default_sensitive", False) + + def get_obj(self, basename="test", path=datastore, entry_type=MagicMock()): return self.test_obj(basename, path, entry_type) def test__init(self): @@ -1742,10 +1768,14 @@ class TestEntrySet(TestDebuggable): class TestGroupSpool(TestPlugin, TestGenerator): test_obj = GroupSpool + def setUp(self): + TestPlugin.setUp(self) + TestGenerator.setUp(self) + set_setup_default("encoding", "utf-8") + def get_obj(self, core=None): if core is None: core = MagicMock() - set_setup_default("encoding", "utf-8") @patch("%s.%s.AddDirectoryMonitor" % (self.test_obj.__module__, self.test_obj.__name__), -- cgit v1.2.3-1-g7c22