def run_tests(self, rulename): for _, values in self.filenames.items(): filename = values.get('filename') template = cfnlint.decode.cfn_yaml.load(filename) cfn = Template(filename, template, ['us-east-1']) rules = RulesCollection(None, None, None, False, None) rules.create_from_custom_rules_file(rulename) runner = cfnlint.runner.Runner(rules, filename, template, None, None) return runner.run()
def get_rules(append_rules, ignore_rules, include_rules, configure_rules=None, include_experimental=False, mandatory_rules=None, custom_rules=None): rules = RulesCollection(ignore_rules, include_rules, configure_rules, include_experimental, mandatory_rules) rules_paths = [DEFAULT_RULESDIR] + append_rules try: for rules_path in rules_paths: if rules_path and os.path.isdir(os.path.expanduser(rules_path)): rules.create_from_directory(rules_path) else: rules.create_from_module(rules_path) rules.create_from_custom_rules_file(custom_rules) except (OSError, ImportError) as e: raise UnexpectedRuleException('Tried to append rules but got an error: %s' % str(e), 1) return rules