diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-07-31 09:12:01 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-07-31 09:12:07 -0400 |
commit | 111193ef96adb711b1b1b4859291c77197eb8ea8 (patch) | |
tree | 6e5fbb39ec3aca1daffc107407fddf58260983b6 /testsuite/Testlib/TestServer/TestPlugins/TestProbes.py | |
parent | 211864073d9254f9d116ee052092f1949775f544 (diff) | |
download | bcfg2-111193ef96adb711b1b1b4859291c77197eb8ea8.tar.gz bcfg2-111193ef96adb711b1b1b4859291c77197eb8ea8.tar.bz2 bcfg2-111193ef96adb711b1b1b4859291c77197eb8ea8.zip |
unified Metadata/DBMetadata plugins
made django optional
Diffstat (limited to 'testsuite/Testlib/TestServer/TestPlugins/TestProbes.py')
-rw-r--r-- | testsuite/Testlib/TestServer/TestPlugins/TestProbes.py | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/testsuite/Testlib/TestServer/TestPlugins/TestProbes.py b/testsuite/Testlib/TestServer/TestPlugins/TestProbes.py index b05f8c146..92e0037f3 100644 --- a/testsuite/Testlib/TestServer/TestPlugins/TestProbes.py +++ b/testsuite/Testlib/TestServer/TestPlugins/TestProbes.py @@ -4,14 +4,19 @@ import time import unittest import lxml.etree from mock import Mock, patch -from django.core.management import setup_environ -os.environ['DJANGO_SETTINGS_MODULE'] = "Bcfg2.settings" +try: + from django.core.management import setup_environ + has_django = True -import Bcfg2.settings -Bcfg2.settings.DATABASE_NAME = \ - os.path.join(os.path.dirname(os.path.abspath(__file__)), "test.sqlite") -Bcfg2.settings.DATABASES['default']['NAME'] = Bcfg2.settings.DATABASE_NAME + os.environ['DJANGO_SETTINGS_MODULE'] = "Bcfg2.settings" + + import Bcfg2.settings + Bcfg2.settings.DATABASE_NAME = \ + os.path.join(os.path.dirname(os.path.abspath(__file__)), "test.sqlite") + Bcfg2.settings.DATABASES['default']['NAME'] = Bcfg2.settings.DATABASE_NAME +except ImportError: + has_django = False import Bcfg2.Server import Bcfg2.Server.Plugin @@ -23,6 +28,9 @@ datastore = "/" test_data = dict(a=1, b=[1, 2, 3], c="test") def test_syncdb(): + if not has_django: + raise unittest.SkipTest("Django not found, skipping") + # create the test database setup_environ(Bcfg2.settings) from django.core.management.commands import syncdb @@ -216,16 +224,12 @@ text "group-with-dashes"], "bar.example.com": []} + @patch("Bcfg2.Server.Plugins.Probes.Probes.load_data", Mock()) def get_probes_object(self, use_db=False): - p = Probes(Mock(), datastore) - p.core.setup = Mock() - p.core.setup.cfp = Mock() - p.core.setup.cfp.getboolean = Mock() - if use_db: - p.core.setup.cfp.getboolean.return_value = True - else: - p.core.setup.cfp.getboolean.return_value = False - return p + core = Mock() + core.setup.cfp.getboolean = Mock() + core.setup.cfp.getboolean.return_value = use_db + return Probes(core, datastore) @patch("Bcfg2.Server.Plugins.Probes.Probes.load_data") def test__init(self, mock_load_data): @@ -253,6 +257,8 @@ text probes._write_data_xml.assert_called_with("test") self.assertFalse(probes._write_data_db.called) + if not has_django: + self.skipTest("Django not found, skipping") probes = self.get_probes_object(use_db=True) probes._write_data_xml.reset_mock() probes._write_data_db.reset_mock() @@ -317,6 +323,8 @@ text self.assertItemsEqual(test_data, json.loads(jdata.get("value"))) def test__write_data_db(self): + if not has_django: + self.skipTest("Django not found, skipping") test_syncdb() probes = self.get_probes_object(use_db=True) probes.probedata = self.get_test_probedata() @@ -331,7 +339,6 @@ text self.assertEqual(len(pdata), len(probes.probedata[cname])) for probe in pdata: - print "probe: %s" % probe.probe self.assertEqual(probe.hostname, client.hostname) self.assertIsNotNone(probe.data) if probe.probe == "xml": @@ -379,6 +386,9 @@ text probes._load_data_xml.assert_any_call() self.assertFalse(probes._load_data_db.called) + if not has_django: + self.skipTest("Django not found, skipping") + probes = self.get_probes_object(use_db=True) probes._load_data_xml.reset_mock() probes._load_data_db.reset_mock() @@ -398,6 +408,7 @@ text probes._write_data_xml(None) xdata = \ lxml.etree.XML(str(mock_open.return_value.write.call_args[0][0])) + print "rv = %s" % lxml.etree.tostring(xdata) mock_parse.return_value = xdata.getroottree() probes.probedata = dict() probes.cgroups = dict() @@ -410,6 +421,8 @@ text self.assertItemsEqual(probes.cgroups, self.get_test_cgroups()) def test__load_data_db(self): + if not has_django: + self.skipTest("Django not found, skipping") test_syncdb() probes = self.get_probes_object(use_db=True) probes.probedata = self.get_test_probedata() |