From 442768c45eea239cd90552b710c8a2eef4e3531a Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Wed, 12 Apr 2017 23:02:56 -0700 Subject: [PATCH] Fix module validator blacklist handling. Process the blacklist before creating a validator instance. --- test/sanity/validate-modules/validate-modules | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/test/sanity/validate-modules/validate-modules b/test/sanity/validate-modules/validate-modules index ee55e2a0589..c4775ebda1e 100755 --- a/test/sanity/validate-modules/validate-modules +++ b/test/sanity/validate-modules/validate-modules @@ -834,19 +834,25 @@ class ModuleValidator(Validator): (option, should_be, version_added)) )) - def validate(self): - super(ModuleValidator, self).validate() + @staticmethod + def is_blacklisted(path): + base_name = os.path.basename(path) + file_name, _ = os.path.splitext(base_name) - if self.object_name.startswith('_') and os.path.islink(self.object_path): - return + if file_name.startswith('_') and os.path.islink(path): + return True - # Blacklists -- these files are not checked - if not frozenset((self.basename, - self.name)).isdisjoint(self.BLACKLIST): - return - for pat in self.BLACKLIST_PATTERNS: - if fnmatch(self.basename, pat): - return + if not frozenset((base_name, file_name)).isdisjoint(ModuleValidator.BLACKLIST): + return True + + for pat in ModuleValidator.BLACKLIST_PATTERNS: + if fnmatch(base_name, pat): + return True + + return False + + def validate(self): + super(ModuleValidator, self).validate() # if self._powershell_module(): # self.warnings.append('Cannot check powershell modules at this ' @@ -974,6 +980,8 @@ def main(): path = module if args.exclude and args.exclude.search(path): sys.exit(0) + if ModuleValidator.is_blacklisted(path): + sys.exit(0) with ModuleValidator(path, analyze_arg_spec=args.arg_spec, base_branch=args.base_branch, git_cache=git_cache) as mv: mv.validate() @@ -997,6 +1005,8 @@ def main(): path = os.path.join(root, filename) if args.exclude and args.exclude.search(path): continue + if ModuleValidator.is_blacklisted(path): + continue with ModuleValidator(path, analyze_arg_spec=args.arg_spec, base_branch=args.base_branch, git_cache=git_cache) as mv: mv.validate()