summaryrefslogtreecommitdiffstats
path: root/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py')
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py47
1 files changed, 26 insertions, 21 deletions
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
index 81c4837e1..37beaa26c 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
@@ -8,6 +8,7 @@ import genshi.core
from Bcfg2.Compat import reduce
from mock import Mock, MagicMock, patch
from Bcfg2.Server.Plugin.helpers import *
+from Bcfg2.Server.Plugin.exceptions import PluginInitError
# add all parent testsuite directories to sys.path to allow (most)
# relative imports in python 2.4
@@ -34,6 +35,7 @@ def tostring(el):
class FakeElementTree(lxml.etree._ElementTree):
xinclude = Mock()
+ parse = Mock
class TestFunctions(Bcfg2TestCase):
@@ -71,7 +73,7 @@ class TestDatabaseBacked(TestPlugin):
self.assertFalse(db._use_db)
setattr(Bcfg2.Options.setup, attr, True)
- self.assertFalse(db._use_db)
+ self.assertRaises(PluginInitError, self.get_obj, core)
class TestPluginDatabaseModel(Bcfg2TestCase):
@@ -771,19 +773,15 @@ class TestStructFile(TestXMLFileBacked):
@skipUnless(HAS_CRYPTO, "No crypto libraries found, skipping")
@patchIf(HAS_CRYPTO, "Bcfg2.Server.Encryption.ssl_decrypt")
- @patchIf(HAS_CRYPTO, "Bcfg2.Server.Encryption.bruteforce_decrypt")
- def test_decrypt(self, mock_bruteforce, mock_ssl):
+ def test_decrypt(self, mock_ssl):
sf = self.get_obj()
def reset():
- mock_bruteforce.reset_mock()
mock_ssl.reset_mock()
-
# test element without text contents
Bcfg2.Options.setup.passphrases = dict()
self.assertIsNone(sf._decrypt(lxml.etree.Element("Test")))
- self.assertFalse(mock_bruteforce.called)
self.assertFalse(mock_ssl.called)
# test element with a passphrase in the config file
@@ -794,29 +792,17 @@ class TestStructFile(TestXMLFileBacked):
mock_ssl.return_value = "decrypted with ssl"
self.assertEqual(sf._decrypt(el), mock_ssl.return_value)
mock_ssl.assert_called_with(el.text, "foopass")
- self.assertFalse(mock_bruteforce.called)
-
- # test failure to decrypt element with a passphrase in the config
- reset()
- mock_ssl.side_effect = EVPError
- self.assertRaises(EVPError, sf._decrypt, el)
- mock_ssl.assert_called_with(el.text, "foopass")
- self.assertFalse(mock_bruteforce.called)
# test element without valid passphrase
reset()
el.set("encrypted", "true")
- mock_bruteforce.return_value = "decrypted with bruteforce"
- self.assertEqual(sf._decrypt(el), mock_bruteforce.return_value)
- mock_bruteforce.assert_called_with(el.text)
+ self.assertRaises(EVPError, sf._decrypt, el)
self.assertFalse(mock_ssl.called)
- # test failure to decrypt element without valid passphrase
+ # test failure to decrypt element with a passphrase in the config
reset()
- mock_bruteforce.side_effect = EVPError
+ mock_ssl.side_effect = EVPError
self.assertRaises(EVPError, sf._decrypt, el)
- mock_bruteforce.assert_called_with(el.text)
- self.assertFalse(mock_ssl.called)
def test_include_element(self):
sf = self.get_obj()
@@ -1135,6 +1121,25 @@ class TestInfoXML(TestStructFile):
self.assertTrue(inc("Path", name="/etc/bar.conf", negate="true"))
self.assertTrue(inc("Path", name="/etc/bar.conf", negate="tRUe"))
+ def test_include_element_altsrc(self):
+ ix = self.get_obj()
+ metadata = Mock()
+ entry = lxml.etree.Element("Path", name="/etc/bar.conf",
+ realname="/etc/foo.conf")
+ inc = lambda tag, **attrs: \
+ ix._include_element(lxml.etree.Element(tag, **attrs),
+ metadata, entry)
+
+ self.assertFalse(inc("Path", name="/etc/bar.conf"))
+ self.assertFalse(inc("Path", name="/etc/foo.conf", negate="true"))
+ self.assertFalse(inc("Path", name="/etc/foo.conf", negate="tRuE"))
+ self.assertTrue(inc("Path", name="/etc/foo.conf"))
+ self.assertTrue(inc("Path", name="/etc/foo.conf", negate="false"))
+ self.assertTrue(inc("Path", name="/etc/foo.conf", negate="faLSe"))
+ self.assertTrue(inc("Path", name="/etc/bar.conf", negate="true"))
+ self.assertTrue(inc("Path", name="/etc/bar.conf", negate="tRUe"))
+
+
def test_BindEntry(self):
ix = self.get_obj()
entry = lxml.etree.Element("Path", name=self.path)