summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Lint
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-11 09:27:34 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-11 09:29:26 -0500
commitc2ab446b6b33cb24f3916bb9d46e0554d3561376 (patch)
treec5b60ffdd74ad1ddde6febb299acce81aa0ea5b1 /src/lib/Bcfg2/Server/Lint
parent4b531e75b3ff269ff96efd4a262a4101efd12375 (diff)
downloadbcfg2-c2ab446b6b33cb24f3916bb9d46e0554d3561376.tar.gz
bcfg2-c2ab446b6b33cb24f3916bb9d46e0554d3561376.tar.bz2
bcfg2-c2ab446b6b33cb24f3916bb9d46e0554d3561376.zip
bcfg2-lint: better checks for TemplateHelper __default__ stuff
* Check to ensure that no symbols use reserved words, which are different for __default__ than for __export__ * Check to ensure that symbols aren't listed in both __default__ and __export__
Diffstat (limited to 'src/lib/Bcfg2/Server/Lint')
-rw-r--r--src/lib/Bcfg2/Server/Lint/TemplateHelper.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/Lint/TemplateHelper.py b/src/lib/Bcfg2/Server/Lint/TemplateHelper.py
index 23b6da484..fbd5a2893 100644
--- a/src/lib/Bcfg2/Server/Lint/TemplateHelper.py
+++ b/src/lib/Bcfg2/Server/Lint/TemplateHelper.py
@@ -24,6 +24,8 @@ class TemplateHelper(ServerPlugin):
def __init__(self, *args, **kwargs):
ServerPlugin.__init__(self, *args, **kwargs)
self.reserved_keywords = dir(HelperModule("foo.py"))
+ self.reserved_defaults = \
+ self.core.plugins['TemplateHelper'].reserved_defaults
def Run(self):
for helper in self.core.plugins['TemplateHelper'].entries.values():
@@ -69,6 +71,16 @@ class TemplateHelper(ServerPlugin):
self.LintError("templatehelper-underscore-export",
"%s: exported symbol %s starts with underscore"
% (helper, sym))
+ if sym in getattr(module, "__default__", []):
+ self.LintError("templatehelper-export-and-default",
+ "%s: %s is listed in both __default__ and "
+ "__export__" % (helper, sym))
+
+ for sym in getattr(module, "__default__", []):
+ if sym in self.reserved_defaults:
+ self.LintError("templatehelper-reserved-default",
+ "%s: default symbol %s is reserved" %
+ (helper, sym))
@classmethod
def Errors(cls):
@@ -77,4 +89,6 @@ class TemplateHelper(ServerPlugin):
"templatehelper-nonlist-export": "error",
"templatehelper-nonexistent-export": "error",
"templatehelper-reserved-export": "error",
- "templatehelper-underscore-export": "warning"}
+ "templatehelper-reserved-default": "error",
+ "templatehelper-underscore-export": "warning",
+ "templatehelper-export-and-default": "warning"}