From 05122a6f04fbbff9838816f6f713e483811c8ed5 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 18 Dec 2012 11:20:47 -0600 Subject: added unit tests for Rules and Defaults --- src/lib/Bcfg2/Server/Plugin/helpers.py | 8 ++------ src/lib/Bcfg2/Server/Plugins/Defaults.py | 7 ++----- src/lib/Bcfg2/Server/Plugins/Rules.py | 7 +++---- 3 files changed, 7 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/lib/Bcfg2/Server/Plugin/helpers.py b/src/lib/Bcfg2/Server/Plugin/helpers.py index dfda30b39..c6cd006ac 100644 --- a/src/lib/Bcfg2/Server/Plugin/helpers.py +++ b/src/lib/Bcfg2/Server/Plugin/helpers.py @@ -155,13 +155,9 @@ class DatabaseBacked(Plugin): lock before writing, because it does not allow multiple threads to write.""" engine = \ - self.core.setup.cfp.get(Bcfg2.Options.DB_ENGINE.cf[0], - Bcfg2.Options.DB_ENGINE.cf[1], + self.core.setup.cfp.get(*Bcfg2.Options.DB_ENGINE.cf, default=Bcfg2.Options.DB_ENGINE.default) - if engine == 'sqlite3': - return True - else: - return False + return engine == 'sqlite3' @staticmethod def get_db_lock(func): diff --git a/src/lib/Bcfg2/Server/Plugins/Defaults.py b/src/lib/Bcfg2/Server/Plugins/Defaults.py index 53eed3798..f4d86a64f 100644 --- a/src/lib/Bcfg2/Server/Plugins/Defaults.py +++ b/src/lib/Bcfg2/Server/Plugins/Defaults.py @@ -7,7 +7,6 @@ import Bcfg2.Server.Plugins.Rules class Defaults(Bcfg2.Server.Plugins.Rules.Rules, Bcfg2.Server.Plugin.StructureValidator): """Set default attributes on bound entries""" - name = 'Defaults' __author__ = 'bcfg-dev@mcs.anl.gov' # Rules is a Generator that happens to implement all of the @@ -20,16 +19,13 @@ class Defaults(Bcfg2.Server.Plugins.Rules.Rules, def HandlesEntry(self, entry, metadata): return False - def HandleEntry(self, entry, metadata): - raise Bcfg2.Server.Plugin.PluginExecutionError - def HandleEvent(self, event): Bcfg2.Server.Plugin.XMLDirectoryBacked.HandleEvent(self, event) def validate_structures(self, metadata, structures): """ Apply defaults """ for struct in structures: - for entry in struct.iter(): + for entry in struct.getchildren(): if entry.tag.startswith("Bound"): is_bound = True entry.tag = entry.tag[5:] @@ -48,6 +44,7 @@ class Defaults(Bcfg2.Server.Plugins.Rules.Rules, if is_bound: entry.tag = "Bound" + entry.tag + @property def _regex_enabled(self): """ Defaults depends on regex matching, so force it enabled """ return True diff --git a/src/lib/Bcfg2/Server/Plugins/Rules.py b/src/lib/Bcfg2/Server/Plugins/Rules.py index 904876794..21862c5db 100644 --- a/src/lib/Bcfg2/Server/Plugins/Rules.py +++ b/src/lib/Bcfg2/Server/Plugins/Rules.py @@ -6,7 +6,6 @@ import Bcfg2.Server.Plugin class Rules(Bcfg2.Server.Plugin.PrioDir): """This is a generator that handles service assignments.""" - name = 'Rules' __author__ = 'bcfg-dev@mcs.anl.gov' def __init__(self, core, datastore): @@ -19,15 +18,14 @@ class Rules(Bcfg2.Server.Plugin.PrioDir): self.Entries[entry.tag].keys()) return False - def HandleEntry(self, entry, metadata): - return self.BindEntry(entry, metadata) - def BindEntry(self, entry, metadata): attrs = self.get_attrs(entry, metadata) for key, val in list(attrs.items()): if key not in entry.attrib: entry.attrib[key] = val + HandleEntry = BindEntry + def _matches(self, entry, metadata, rules): if Bcfg2.Server.Plugin.PrioDir._matches(self, entry, metadata, rules): return True @@ -48,6 +46,7 @@ class Rules(Bcfg2.Server.Plugin.PrioDir): return True return False + @property def _regex_enabled(self): """ Return True if rules regexes are enabled, False otherwise """ return self.core.setup.cfp.getboolean("rules", "regex", default=False) -- cgit v1.2.3-1-g7c22