summaryrefslogtreecommitdiffstats
path: root/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-12-18 11:20:47 -0600
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-12-18 11:21:11 -0600
commit05122a6f04fbbff9838816f6f713e483811c8ed5 (patch)
treedc367daf0130ddb2ef95faa6ec41f97f09f90f4b /testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py
parent1a4148626871df43d2d207db551536813868713e (diff)
downloadbcfg2-05122a6f04fbbff9838816f6f713e483811c8ed5.tar.gz
bcfg2-05122a6f04fbbff9838816f6f713e483811c8ed5.tar.bz2
bcfg2-05122a6f04fbbff9838816f6f713e483811c8ed5.zip
added unit tests for Rules and Defaults
Diffstat (limited to 'testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py')
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py
new file mode 100644
index 000000000..9ed0c3803
--- /dev/null
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestDefaults.py
@@ -0,0 +1,67 @@
+import os
+import sys
+import lxml.etree
+from mock import Mock, MagicMock, patch
+from Bcfg2.Server.Plugins.Defaults import *
+
+# add all parent testsuite directories to sys.path to allow (most)
+# relative imports in python 2.4
+path = os.path.dirname(__file__)
+while path != "/":
+ if os.path.basename(path).lower().startswith("test"):
+ sys.path.append(path)
+ if os.path.basename(path) == "testsuite":
+ break
+ path = os.path.dirname(path)
+from common import *
+from TestRules import TestRules
+from Testinterfaces import TestStructureValidator
+
+
+class TestDefaults(TestRules, TestStructureValidator):
+ test_obj = Defaults
+
+ def get_obj(self, *args, **kwargs):
+ return TestRules.get_obj(self, *args, **kwargs)
+
+ def test_HandlesEntry(self):
+ d = self.get_obj()
+ self.assertFalse(d.HandlesEntry(Mock(), Mock()))
+
+ @patch("Bcfg2.Server.Plugin.helpers.XMLDirectoryBacked.HandleEvent")
+ def test_HandleEvent(self, mock_HandleEvent):
+ d = self.get_obj()
+ evt = Mock()
+ d.HandleEvent(evt)
+ mock_HandleEvent.assert_called_with(d, evt)
+
+ def test_validate_structures(self):
+ d = self.get_obj()
+ d.BindEntry = Mock()
+ metadata = Mock()
+
+ entries = []
+ b1 = lxml.etree.Element("Bundle")
+ entries.append(lxml.etree.SubElement(b1, "Path", name="/foo"))
+ entries.append(lxml.etree.SubElement(b1, "Path", name="/bar"))
+ b2 = lxml.etree.Element("Bundle")
+ bound = lxml.etree.SubElement(b2, "BoundPath", name="/baz")
+ entries.append(bound)
+ entries.append(lxml.etree.SubElement(b2, "Package", name="quux"))
+
+ d.validate_structures(metadata, [b1, b2])
+ self.assertItemsEqual(d.BindEntry.call_args_list,
+ [call(e, metadata) for e in entries])
+ # ensure that BoundEntries stay bound
+ self.assertTrue(bound.tag == "BoundPath")
+
+ def test__matches_regex_disabled(self):
+ """ cannot disable regex in Defaults plugin """
+ pass
+
+ def set_regex_enabled(self, rules_obj, state):
+ pass
+
+ def test__regex_enabled(self):
+ r = self.get_obj()
+ self.assertTrue(r._regex_enabled)