summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2014-11-25 16:14:43 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2014-11-25 16:14:43 +0100
commit84b180e2fddcb5563adca33ed6feb3fd991dfde2 (patch)
tree910275fe42887cb7a53cfaf17665ed4080c360fc /testsuite
parentbe564316c7c4deaad090bfc0bc79c460965cb1d6 (diff)
downloadbcfg2-84b180e2fddcb5563adca33ed6feb3fd991dfde2.tar.gz
bcfg2-84b180e2fddcb5563adca33ed6feb3fd991dfde2.tar.bz2
bcfg2-84b180e2fddcb5563adca33ed6feb3fd991dfde2.zip
testsuite: add test for modification inheritance
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestBundler.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestBundler.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestBundler.py
index dbed50ddb..db2a91227 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestBundler.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestBundler.py
@@ -3,6 +3,7 @@ import sys
import lxml.etree
from mock import Mock, MagicMock, patch
from Bcfg2.Server.Plugins.Bundler import *
+from Bcfg2.version import Bcfg2VersionInfo
# add all parent testsuite directories to sys.path to allow (most)
# relative imports in python 2.4
@@ -75,10 +76,14 @@ class TestBundler(TestPlugin, TestStructure, TestXMLDirectoryBacked):
has_dep = lxml.etree.Element("Bundle")
lxml.etree.SubElement(has_dep, "RequiredBundle", name="is_dep")
+ lxml.etree.SubElement(has_dep, "RequiredBundle", name="is_mod_dep",
+ modification="inherit")
lxml.etree.SubElement(has_dep, "Package", name="foo")
b.bundles['has_dep'].XMLMatch.return_value = has_dep
expected['has_dep'] = lxml.etree.Element("Bundle", name="has_dep")
lxml.etree.SubElement(expected['has_dep'], "Package", name="foo")
+ lxml.etree.SubElement(expected['has_dep'], "Bundle",
+ name="is_mod_dep")
is_dep = lxml.etree.Element("Bundle")
lxml.etree.SubElement(is_dep, "Package", name="bar")
@@ -94,6 +99,7 @@ class TestBundler(TestPlugin, TestStructure, TestXMLDirectoryBacked):
metadata = Mock()
metadata.bundles = ["error", "xinclude", "has_dep", "indep"]
+ metadata.version_info = Bcfg2VersionInfo('1.4.0')
rv = b.BuildStructures(metadata)
self.assertEqual(len(rv), 4)
@@ -109,3 +115,33 @@ class TestBundler(TestPlugin, TestStructure, TestXMLDirectoryBacked):
b.bundles['error'].XMLMatch.assert_called_with(metadata)
self.assertFalse(b.bundles['skip'].XMLMatch.called)
+
+ def test_BuildStructuresOldClient(self):
+ b = self.get_obj()
+ b.bundles = dict(has_dep=Mock())
+ expected = dict()
+
+ has_dep = lxml.etree.Element("Bundle")
+ lxml.etree.SubElement(has_dep, "RequiredBundle", name="is_dep")
+ lxml.etree.SubElement(has_dep, "RequiredBundle", name="is_mod_dep",
+ modification="inherit")
+ lxml.etree.SubElement(has_dep, "Package", name="foo")
+ b.bundles['has_dep'].XMLMatch.return_value = has_dep
+ expected['has_dep'] = lxml.etree.Element("Bundle", name="has_dep")
+ lxml.etree.SubElement(expected['has_dep'], "Package", name="foo")
+
+ metadata = Mock()
+ metadata.bundles = ["has_dep"]
+ metadata.version_info = Bcfg2VersionInfo('1.3.0')
+
+ rv = b.BuildStructures(metadata)
+ self.assertEqual(len(rv), len(metadata.bundles))
+ for bundle in rv:
+ name = bundle.get("name")
+ self.assertIsNotNone(name,
+ "Bundle %s was not built" % name)
+ self.assertIn(name, expected,
+ "Unexpected bundle %s was built" % name)
+ self.assertXMLEqual(bundle, expected[name],
+ "Bundle %s was not built correctly" % name)
+ b.bundles[name].XMLMatch.assert_called_with(metadata)