summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2016-09-05 17:34:34 +0200
committerAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2016-09-05 17:34:34 +0200
commit7be65237acd7fe91a6693d9c2518a8a0c849d672 (patch)
tree781a7134fac0b482f2311a3df7427b610827953d /testsuite
parent7586aee42bc37432ad07638e254997540aa34007 (diff)
downloadbcfg2-7be65237acd7fe91a6693d9c2518a8a0c849d672.tar.gz
bcfg2-7be65237acd7fe91a6693d9c2518a8a0c849d672.tar.bz2
bcfg2-7be65237acd7fe91a6693d9c2518a8a0c849d672.zip
testsuite: Only sync the database once per TestCase
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py10
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py4
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py2
-rw-r--r--testsuite/common.py8
4 files changed, 13 insertions, 11 deletions
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
index 5a82100d0..9f6a9f320 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
@@ -51,6 +51,7 @@ class TestFunctions(Bcfg2TestCase):
class TestDatabaseBacked(TestPlugin):
test_obj = DatabaseBacked
+ synced = False
def setUp(self):
TestPlugin.setUp(self)
@@ -76,6 +77,15 @@ class TestDatabaseBacked(TestPlugin):
setattr(Bcfg2.Options.setup, attr, True)
self.assertRaises(PluginInitError, self.get_obj, core)
+ def syncdb(self, modeltest):
+ """ Given an instance of a :class:`DBModelTestCase` object, sync
+ and clean the database """
+ inst = modeltest(methodName='test_syncdb')
+ if not self.__class__.synced:
+ inst.test_syncdb()
+ self.__class__.synced = True
+ inst.test_cleandb()
+
class TestPluginDatabaseModel(Bcfg2TestCase):
""" placeholder for future tests """
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
index f2721c9ea..5d7ed50b7 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
@@ -123,7 +123,7 @@ class TestClientVersions(TestDatabaseBacked):
def setUp(self):
TestDatabaseBacked.setUp(self)
self.test_obj = ClientVersions
- syncdb(TestMetadataDB)
+ self.syncdb(TestMetadataDB)
for client, version in self.test_clients.items():
MetadataClientModel(hostname=client, version=version).save()
@@ -1252,7 +1252,7 @@ class TestMetadataBase(TestMetadata):
TestClientRunHooks.setUp(self)
TestDatabaseBacked.setUp(self)
Bcfg2.Options.setup.metadata_db = True
- syncdb(TestMetadataDB)
+ self.syncdb(TestMetadataDB)
def load_clients_data(self, metadata=None, xdata=None):
if metadata is None:
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py
index 32766b5c1..07d624b29 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py
@@ -278,7 +278,7 @@ group: group:with:colons
def test_probes_db(self):
""" Set and retrieve probe data with database enabled """
Bcfg2.Options.setup.probes_db = True
- syncdb(TestProbesDB)
+ self.syncdb(TestProbesDB)
self._perform_tests()
def test_allowed_cgroups(self):
diff --git a/testsuite/common.py b/testsuite/common.py
index 9db2cb94a..3c0ad82d7 100644
--- a/testsuite/common.py
+++ b/testsuite/common.py
@@ -245,14 +245,6 @@ class DBModelTestCase(Bcfg2TestCase):
self.assertItemsEqual(list(model.objects.all()), [])
-def syncdb(modeltest):
- """ Given an instance of a :class:`DBModelTestCase` object, sync
- and clean the database """
- inst = modeltest(methodName='test_syncdb')
- inst.test_syncdb()
- inst.test_cleandb()
-
-
# in order for patchIf() to decorate a function in the same way as
# patch(), we override the default behavior of __enter__ and __exit__
# on the _patch() object to basically be noops.