diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-09-24 14:51:36 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-09-25 11:58:48 -0400 |
commit | 3f16355e18cdceb37828a00a8181d9cc60815cd0 (patch) | |
tree | e2b38114e0a06d3c7b28ad4ef5c15793e21eb2b3 | |
parent | 47aebb16f15fe6f8ce29d8c6b105f10d8d64c295 (diff) | |
download | bcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.tar.gz bcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.tar.bz2 bcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.zip |
fixed tests for pylint changes
-rw-r--r-- | src/lib/Bcfg2/Client/Tools/POSIX/base.py | 2 | ||||
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Metadata.py | 26 | ||||
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Probes.py | 7 | ||||
-rw-r--r-- | testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Testbase.py | 78 | ||||
-rw-r--r-- | testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py | 6 | ||||
-rw-r--r-- | testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testinterfaces.py | 6 | ||||
-rw-r--r-- | testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py | 5 | ||||
-rw-r--r-- | testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py | 57 | ||||
-rw-r--r-- | testsuite/Testsrc/test_code_checks.py (renamed from testsuite/Testsrc/testmisc.py) | 0 |
9 files changed, 85 insertions, 102 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/base.py b/src/lib/Bcfg2/Client/Tools/POSIX/base.py index 6e7eb70b0..94a490fda 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/base.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/base.py @@ -516,6 +516,8 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): if val is not None: entry.set(attr, str(val)) + print "about to verify acls; errors=%s" % errors + return self._verify_acls(entry, path=path) and len(errors) == 0 def _list_entry_acls(self, entry): diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py index e0904339f..468d1f190 100644 --- a/src/lib/Bcfg2/Server/Plugins/Metadata.py +++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py @@ -1,6 +1,5 @@ -""" -This file stores persistent metadata for the Bcfg2 Configuration Repository. -""" +""" This file stores persistent metadata for the Bcfg2 Configuration +Repository. """ import re import os @@ -15,7 +14,7 @@ import Bcfg2.Server import Bcfg2.Server.Lint import Bcfg2.Server.Plugin import Bcfg2.Server.FileMonitor -from Bcfg2.Compat import MutableMapping, all +from Bcfg2.Compat import MutableMapping, all # pylint: disable=W0622 from Bcfg2.version import Bcfg2VersionInfo try: @@ -26,6 +25,7 @@ except ImportError: logger = logging.getLogger(__name__) + def locked(fd): """Aquire a lock on a file""" try: @@ -104,13 +104,17 @@ class XMLMetadataConfig(Bcfg2.Server.Plugin.XMLFileBacked): self.pseudo_monitor = isinstance(metadata.core.fam, Bcfg2.Server.FileMonitor.Pseudo) - @property - def xdata(self): # pylint: disable=E0202 + def _get_xdata(self): if not self.data: raise Bcfg2.Server.Plugin.MetadataRuntimeError("%s has no data" % self.basefile) return self.data + def _set_xdata(self, val): + self.data = val + + xdata = property(_get_xdata, _set_xdata) + @property def base_xdata(self): if not self.basedata: @@ -738,11 +742,7 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, # clear the entire cache when we get an event for any # metadata file self.core.metadata_cache.expire() - try: - proc = getattr(self, "_handle_%s_event" % aname) - except AttributeError: - proc = self._handle_default_event # pylint: disable=E1101 - proc(event) + getattr(self, "_handle_%s_event" % aname)(event) if False not in list(self.states.values()) and self.debug_flag: # check that all groups are real and complete. this is @@ -853,8 +853,8 @@ class Metadata(Bcfg2.Server.Plugin.Metadata, address = addresspair[0] if address in self.addresses: if len(self.addresses[address]) != 1: - err = "Address %s has multiple reverse assignments; a " + \ - "uuid must be used" % address + err = ("Address %s has multiple reverse assignments; a " + "uuid must be used" % address) self.logger.error(err) raise Bcfg2.Server.Plugin.MetadataConsistencyError(err) return self.addresses[address][0] diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py index 58723e392..49e3b5e63 100644 --- a/src/lib/Bcfg2/Server/Plugins/Probes.py +++ b/src/lib/Bcfg2/Server/Plugins/Probes.py @@ -13,6 +13,7 @@ import Bcfg2.Server.Plugin # pylint: disable=F0401 try: from django.db import models + HAS_DJANGO = True class ProbesDataModel(models.Model, Bcfg2.Server.Plugin.PluginDatabaseModel): @@ -28,7 +29,7 @@ try: hostname = models.CharField(max_length=255) group = models.CharField(max_length=255) except ImportError: - pass + HAS_DJANGO = False try: import json @@ -72,8 +73,8 @@ class ProbeData(str): def __new__(cls, data): return str.__new__(cls, data) - def __init__(self): - str.__init__(self) + def __init__(self, data): + str.__init__(self, data) self._xdata = None self._json = None self._yaml = None diff --git a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Testbase.py b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Testbase.py index b447ab642..bcb1d16af 100644 --- a/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Testbase.py +++ b/testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Testbase.py @@ -23,15 +23,15 @@ from common import XI_NAMESPACE, XI, inPy3k, call, builtins, u, can_skip, \ try: import selinux - has_selinux = True + HAS_SELINUX = True except ImportError: - has_selinux = False + HAS_SELINUX = False try: import posix1e - has_acls = True + HAS_ACLS = True except ImportError: - has_acls = False + HAS_ACLS = False class TestPOSIXTool(Bcfg2TestCase): test_obj = POSIXTool @@ -298,9 +298,9 @@ class TestPOSIXTool(Bcfg2TestCase): mock_set_secontext.assert_called_with(entry, path=entry.get("name")) mock_set_acls.assert_called_with(entry, path=entry.get("name")) - @skipUnless(has_acls, "ACLS not found, skipping") - @patchIf(has_acls, "posix1e.ACL") - @patchIf(has_acls, "posix1e.Entry") + @skipUnless(HAS_ACLS, "ACLS not found, skipping") + @patchIf(HAS_ACLS, "posix1e.ACL") + @patchIf(HAS_ACLS, "posix1e.Entry") @patch("os.path.isdir") @patch("Bcfg2.Client.Tools.POSIX.base.%s._norm_uid" % test_obj.__name__) @patch("Bcfg2.Client.Tools.POSIX.base.%s._norm_gid" % test_obj.__name__) @@ -311,9 +311,9 @@ class TestPOSIXTool(Bcfg2TestCase): entry = lxml.etree.Element("Path", name="/etc/foo", type="file") # disable acls for the initial test - Bcfg2.Client.Tools.POSIX.base.has_acls = False + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = False self.assertTrue(self.ptool._set_acls(entry)) - Bcfg2.Client.Tools.POSIX.base.has_acls = True + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = True # build a set of file ACLs to return from posix1e.ACL(file=...) file_acls = [] @@ -442,16 +442,16 @@ class TestPOSIXTool(Bcfg2TestCase): self.assertItemsEqual(added_acls, [(fileacl_rv, posix1e.ACL_GROUP, 100, 5)]) - @skipUnless(has_selinux, "SELinux not found, skipping") - @patchIf(has_selinux, "selinux.restorecon") - @patchIf(has_selinux, "selinux.lsetfilecon") + @skipUnless(HAS_SELINUX, "SELinux not found, skipping") + @patchIf(HAS_SELINUX, "selinux.restorecon") + @patchIf(HAS_SELINUX, "selinux.lsetfilecon") def test_set_secontext(self, mock_lsetfilecon, mock_restorecon): entry = lxml.etree.Element("Path", name="/etc/foo", type="file") # disable selinux for the initial test - Bcfg2.Client.Tools.POSIX.base.has_selinux = False + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = False self.assertTrue(self.ptool._set_secontext(entry)) - Bcfg2.Client.Tools.POSIX.base.has_selinux = True + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = True # no context given self.assertTrue(self.ptool._set_secontext(entry)) @@ -568,36 +568,36 @@ class TestPOSIXTool(Bcfg2TestCase): # disable selinux and acls for this call -- we test them # separately so that we can skip those tests as appropriate - states = (Bcfg2.Client.Tools.POSIX.base.has_selinux, - Bcfg2.Client.Tools.POSIX.base.has_acls) - Bcfg2.Client.Tools.POSIX.base.has_selinux = False - Bcfg2.Client.Tools.POSIX.base.has_acls = False + states = (Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX, + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS) + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = False + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = False self.assertEqual(self.ptool._gather_data(path), (stat_rv, '0', '10', '0660', None, None)) - Bcfg2.Client.Tools.POSIX.base.has_selinux, \ - Bcfg2.Client.Tools.POSIX.base.has_acls = states + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX, \ + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = states mock_stat.assert_called_with(path) - @skipUnless(has_selinux, "SELinux not found, skipping") + @skipUnless(HAS_SELINUX, "SELinux not found, skipping") def test__gather_data_selinux(self): context = 'system_u:object_r:root_t:s0' path = '/test' @patch('os.stat') - @patchIf(has_selinux, "selinux.getfilecon") + @patchIf(HAS_SELINUX, "selinux.getfilecon") def inner(mock_getfilecon, mock_stat): mock_getfilecon.return_value = [len(context) + 1, context] mock_stat.return_value = MagicMock() # disable acls for this call and test them separately - state = Bcfg2.Client.Tools.POSIX.base.has_acls - Bcfg2.Client.Tools.POSIX.base.has_acls = False + state = Bcfg2.Client.Tools.POSIX.base.HAS_ACLS + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = False self.assertEqual(self.ptool._gather_data(path)[4], 'root_t') - Bcfg2.Client.Tools.POSIX.base.has_acls = state + Bcfg2.Client.Tools.POSIX.base.HAS_ACLS = state mock_getfilecon.assert_called_with(path) inner() - @skipUnless(has_acls, "ACLS not found, skipping") + @skipUnless(HAS_ACLS, "ACLS not found, skipping") @patch('os.stat') @patch("Bcfg2.Client.Tools.POSIX.base.%s._list_file_acls" % test_obj.__name__) @@ -608,13 +608,13 @@ class TestPOSIXTool(Bcfg2TestCase): path = '/test' mock_stat.return_value = MagicMock() # disable selinux for this call and test it separately - state = Bcfg2.Client.Tools.POSIX.base.has_selinux - Bcfg2.Client.Tools.POSIX.base.has_selinux = False + state = Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = False self.assertItemsEqual(self.ptool._gather_data(path)[5], acls) - Bcfg2.Client.Tools.POSIX.base.has_selinux = state + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = state mock_list_file_acls.assert_called_with(path) - @patchIf(has_selinux, "selinux.matchpathcon") + @patchIf(HAS_SELINUX, "selinux.matchpathcon") @patch("Bcfg2.Client.Tools.POSIX.base.%s._verify_acls" % test_obj.__name__) @patch("Bcfg2.Client.Tools.POSIX.base.%s._gather_data" % test_obj.__name__) @patch("Bcfg2.Client.Tools.POSIX.base.%s._norm_entry_uid" % @@ -667,8 +667,8 @@ class TestPOSIXTool(Bcfg2TestCase): # test when secontext is None entry = reset() gather_data_rv[4] = None - sestate = Bcfg2.Client.Tools.POSIX.base.has_selinux - Bcfg2.Client.Tools.POSIX.base.has_selinux = False + sestate = Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = False mock_gather_data.return_value = tuple(gather_data_rv) self.assertTrue(self.ptool._verify_metadata(entry)) mock_gather_data.assert_called_with(entry.get("name")) @@ -677,7 +677,7 @@ class TestPOSIXTool(Bcfg2TestCase): for attr, idx, val in expected: if attr != 'current_secontext': self.assertEqual(entry.get(attr), val) - Bcfg2.Client.Tools.POSIX.base.has_selinux = sestate + Bcfg2.Client.Tools.POSIX.base.HAS_SELINUX = sestate gather_data_rv = [MagicMock(), None, None, None, None, []] for attr, idx, val in expected: @@ -704,7 +704,7 @@ class TestPOSIXTool(Bcfg2TestCase): failures = [('current_owner', 1, '10'), ('current_group', 2, '100'), ('current_perms', 3, '0660')] - if has_selinux: + if HAS_SELINUX: failures.append(('current_secontext', 4, 'root_t')) for fail_attr, fail_idx, fail_val in failures: @@ -743,7 +743,7 @@ class TestPOSIXTool(Bcfg2TestCase): self.assertEqual(entry.get(attr), val) self.assertEqual(entry.get("current_mtime"), str(fail_mtime)) - if has_selinux: + if HAS_SELINUX: # test success and failure for __default__ secontext entry = reset() entry.set("mtime", str(mtime)) @@ -782,7 +782,7 @@ class TestPOSIXTool(Bcfg2TestCase): self.assertEqual(entry.get(attr), val) self.assertEqual(entry.get("current_mtime"), str(mtime)) - @skipUnless(has_acls, "ACLS not found, skipping") + @skipUnless(HAS_ACLS, "ACLS not found, skipping") def test_list_entry_acls(self): entry = lxml.etree.Element("Path", name="/test", type="file") lxml.etree.SubElement(entry, "ACL", scope="user", type="default", @@ -793,7 +793,7 @@ class TestPOSIXTool(Bcfg2TestCase): {("default", posix1e.ACL_USER, "user"): 7, ("access", posix1e.ACL_GROUP, "group"): 5}) - @skipUnless(has_acls, "ACLS not found, skipping") + @skipUnless(HAS_ACLS, "ACLS not found, skipping") @patch("pwd.getpwuid") @patch("grp.getgrgid") @patch("os.path.isdir") @@ -878,7 +878,7 @@ class TestPOSIXTool(Bcfg2TestCase): self.assertItemsEqual(mock_ACL.call_args_list, [call(file=path), call(filedef=path)]) - if has_acls: + if HAS_ACLS: # python 2.6 applies decorators at compile-time, not at # run-time, so we can't do these as decorators because # pylibacl might not be installed. (If it's not, this test @@ -886,7 +886,7 @@ class TestPOSIXTool(Bcfg2TestCase): # we're safe.) test_list_file_acls = patch("posix1e.ACL")(test_list_file_acls) - @skipUnless(has_acls, "ACLS not found, skipping") + @skipUnless(HAS_ACLS, "ACLS not found, skipping") @patch("Bcfg2.Client.Tools.POSIX.base.%s._list_file_acls" % test_obj.__name__) @patch("Bcfg2.Client.Tools.POSIX.base.%s._list_entry_acls" % diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py index aea00c356..f555d15f1 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py @@ -81,7 +81,7 @@ class TestFunctions(Bcfg2TestCase): class TestDatabaseBacked(TestPlugin): test_obj = DatabaseBacked - @skipUnless(has_django, "Django not found") + @skipUnless(HAS_DJANGO, "Django not found") def test__use_db(self): core = Mock() core.setup.cfp.getboolean.return_value = True @@ -93,7 +93,7 @@ class TestDatabaseBacked(TestPlugin): db = self.get_obj(core) self.assertFalse(db._use_db) - Bcfg2.Server.Plugin.helpers.has_django = False + Bcfg2.Server.Plugin.helpers.HAS_DJANGO = False core = Mock() db = self.get_obj(core) self.assertFalse(db._use_db) @@ -102,7 +102,7 @@ class TestDatabaseBacked(TestPlugin): core.setup.cfp.getboolean.return_value = True db = self.get_obj(core) self.assertFalse(db._use_db) - Bcfg2.Server.Plugin.helpers.has_django = True + Bcfg2.Server.Plugin.helpers.HAS_DJANGO = True class TestPluginDatabaseModel(Bcfg2TestCase): diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testinterfaces.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testinterfaces.py index 1c0af33eb..f05795b1a 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testinterfaces.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testinterfaces.py @@ -129,7 +129,7 @@ class TestThreadedStatistics(TestStatistics): queue.empty = Mock(side_effect=Empty) ts.work_queue = queue - mock_open.side_effect = OSError + mock_open.side_effect = IOError # test that save does _not_ raise an exception even when # everything goes pear-shaped ts._save() @@ -188,7 +188,7 @@ class TestThreadedStatistics(TestStatistics): reset() mock_exists.return_value = True - mock_open.side_effect = OSError + mock_open.side_effect = IOError self.assertFalse(ts._load()) mock_exists.assert_called_with(ts.pending_file) mock_open.assert_called_with(ts.pending_file, 'r') @@ -330,7 +330,7 @@ class TestVersion(Bcfg2TestCase): test_obj = Version def get_obj(self): - return self.test_obj() + return self.test_obj(datastore) def test_get_revision(self): d = self.get_obj() diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py index 9646ee66d..2aebb0705 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py @@ -1458,14 +1458,13 @@ class TestMetadata_ClientsXML(TestMetadataBase): # decorate setUp() if can_skip or has_django: __test__ = True - + def load_clients_data(self, metadata=None, xdata=None): if metadata is None: metadata = self.get_obj() metadata.core.fam = Mock() - metadata._handle_file("clients.xml") + metadata.clients_xml = metadata._handle_file("clients.xml") metadata = TestMetadata.load_clients_data(self, metadata=metadata, xdata=xdata) return TestMetadataBase.load_clients_data(self, metadata=metadata, xdata=xdata) - diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py index 4b020dcff..34b2a0f0e 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py @@ -30,7 +30,7 @@ class FakeList(list): class TestProbesDB(DBModelTestCase): - if has_django: + if HAS_DJANGO: models = [ProbesGroupsModel, ProbesDataModel] @@ -69,13 +69,14 @@ class TestProbeData(Bcfg2TestCase): self.assertIsNotNone(data.xdata) self.assertIsNotNone(data.xdata.find("test2")) + @skipUnless(HAS_JSON, "JSON libraries not found, skipping JSON tests") def test_json(self): jdata = json.dumps(test_data) data = ProbeData(jdata) self.assertIsNotNone(data.json) self.assertItemsEqual(test_data, data.json) - @skipUnless(has_yaml, "YAML libraries not found, skipping YAML tests") + @skipUnless(HAS_YAML, "YAML libraries not found, skipping YAML tests") def test_yaml(self): jdata = yaml.dump(test_data) data = ProbeData(jdata) @@ -107,32 +108,10 @@ class TestProbeSet(TestEntrySet): fam.AddMonitor.assert_called_with(datastore, ps) TestEntrySet.test__init(self) - def test_HandleEvent(self): - ps = self.get_obj() - ps.handle_event = Mock() - - # test that events on the data store itself are skipped - evt = Mock() - evt.filename = datastore - ps.HandleEvent(evt) - self.assertFalse(ps.handle_event.called) - - # test that events on probed.xml are skipped - evt.reset_mock() - evt.filename = "probed.xml" - ps.HandleEvent(evt) - self.assertFalse(ps.handle_event.called) - - # test that other events are processed appropriately - evt.reset_mock() - evt.filename = "fooprobe" - ps.HandleEvent(evt) - ps.handle_event.assert_called_with(evt) - @patch("%s.list" % builtins, FakeList) def test_get_probe_data(self): ps = self.get_obj() - + # build some fairly complex test data for this. in the end, # we want the probe data to include only the most specific # version of a given probe, and by basename only, not full @@ -220,8 +199,9 @@ text """) rv["bar.example.com"] = ClientProbeDataSet(timestamp=time.time()) rv["bar.example.com"]["empty"] = ProbeData("") - rv["bar.example.com"]["json"] = ProbeData(json.dumps(test_data)) - if has_yaml: + if HAS_JSON: + rv["bar.example.com"]["json"] = ProbeData(json.dumps(test_data)) + if HAS_YAML: rv["bar.example.com"]["yaml"] = ProbeData(yaml.dump(test_data)) return rv @@ -268,7 +248,7 @@ text "use_database", default=False) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") @patch("Bcfg2.Server.Plugins.Probes.Probes._write_data_db", Mock()) @patch("Bcfg2.Server.Plugins.Probes.Probes._write_data_xml", Mock()) def test_write_data_xml(self): @@ -277,7 +257,7 @@ text probes._write_data_xml.assert_called_with("test") self.assertFalse(probes._write_data_db.called) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") @patch("Bcfg2.Server.Plugins.Probes.Probes._write_data_db", Mock()) @patch("Bcfg2.Server.Plugins.Probes.Probes._write_data_xml", Mock()) def test_write_data_db(self): @@ -331,17 +311,18 @@ text self.assertIsNotNone(empty) self.assertIsNotNone(empty.get("value")) self.assertEqual(empty.get("value"), "") - jdata = bardata.find("Probe[@name='json']") - self.assertIsNotNone(jdata) - self.assertIsNotNone(jdata.get("value")) - self.assertItemsEqual(test_data, json.loads(jdata.get("value"))) - if has_yaml: + if HAS_JSON: + jdata = bardata.find("Probe[@name='json']") + self.assertIsNotNone(jdata) + self.assertIsNotNone(jdata.get("value")) + self.assertItemsEqual(test_data, json.loads(jdata.get("value"))) + if HAS_YAML: ydata = bardata.find("Probe[@name='yaml']") self.assertIsNotNone(ydata) self.assertIsNotNone(ydata.get("value")) self.assertItemsEqual(test_data, yaml.load(ydata.get("value"))) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") def test__write_data_db(self): syncdb(TestProbesDB) probes = self.get_probes_object(use_db=True) @@ -393,7 +374,7 @@ text pgroups = ProbesGroupsModel.objects.filter(hostname=cname).all() self.assertEqual(len(pgroups), len(probes.cgroups[cname])) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") @patch("Bcfg2.Server.Plugins.Probes.Probes._load_data_db", Mock()) @patch("Bcfg2.Server.Plugins.Probes.Probes._load_data_xml", Mock()) def test_load_data_xml(self): @@ -402,7 +383,7 @@ text probes._load_data_xml.assert_any_call() self.assertFalse(probes._load_data_db.called) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") @patch("Bcfg2.Server.Plugins.Probes.Probes._load_data_db", Mock()) @patch("Bcfg2.Server.Plugins.Probes.Probes._load_data_xml", Mock()) def test_load_data_db(self): @@ -434,7 +415,7 @@ text self.assertItemsEqual(probes.probedata, self.get_test_probedata()) self.assertItemsEqual(probes.cgroups, self.get_test_cgroups()) - @skipUnless(has_django, "Django not found, skipping") + @skipUnless(HAS_DJANGO, "Django not found, skipping") def test__load_data_db(self): syncdb(TestProbesDB) probes = self.get_probes_object(use_db=True) diff --git a/testsuite/Testsrc/testmisc.py b/testsuite/Testsrc/test_code_checks.py index 41a91caff..41a91caff 100644 --- a/testsuite/Testsrc/testmisc.py +++ b/testsuite/Testsrc/test_code_checks.py |