def rule_runner(request: SubRequest, config_options: Namespace) -> RunFromText: """Return runner for a specific rule class.""" rule_class = request.param config_options.enable_list.append(rule_class().id) collection = RulesCollection(options=config_options) collection.register(rule_class()) return RunFromText(collection)
def test_file(self): collection = RulesCollection() collection.register(AdminByDefault()) file_name = 'testResources/ansible-smell/adminbydefault.yml' good_runner = Runner(playbook=file_name, rules=collection) # print(good_runner.run()) assert 3 == len(good_runner.run())
def test_file(self): collection = RulesCollection() collection.register(HardCodedSecrets()) file_name = 'testResources/ansible-smell/create.yml' good_runner = Runner(rules=collection, playbook=file_name) # print(good_runner.run()) assert 1 == len(good_runner.run())
def lint_error_lines(test_playbook: str) -> List[int]: """Get VarHasSpacesRules linting results on test_playbook.""" collection = RulesCollection() collection.register(VariableHasSpacesRule()) lintable = Lintable(test_playbook) results = Runner(lintable, rules=collection).run() return list(map(lambda item: item.linenumber, results))
def test_file(self): collection = RulesCollection() collection.register(EmptyPassword0()) file_name = 'testResources/ansible-smell/adminbydefault.yml' good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run()) print(len(good_runner.run())) assert 0 == len(good_runner.run())
def test_file(self): collection = RulesCollection() collection.register(DepreciatedStatementUsage()) file_name = 'testResources/ansible-smell/adminbydefault.yml' good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run())
def test_206() -> None: """Verify rule.""" collection = RulesCollection() collection.register(VariableHasSpacesRule()) lintable = Lintable("examples/playbooks/206.yml") results = Runner(collection, lintable=lintable).run() assert len(results) == 3
def test_file(self): collection = RulesCollection() collection.register(HardCodePassword()) file_name = 'testResources/ansible-smell/hardcodepassword.yml' good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run()) print(type(good_runner.run())) print(len(good_runner.run())) assert 0 == len(good_runner.run())
def test_var_spacing() -> None: """Verify rule.""" collection = RulesCollection() collection.register(VariableHasSpacesRule()) lintable = Lintable("examples/playbooks/var-spacing.yml") results = Runner(lintable, rules=collection).run() assert len(results) == 3
def test_file(self): collection = RulesCollection() collection.register(InvalidIPaddressbinding()) file_name = 'testResources/ansible-smell/invalidIPaddressbinding.yml' good_runner = Runner(playbook=file_name, rules=collection) result = good_runner.run() print(result) print(type(result)) print(len(result)) assert 0 == len(good_runner.run())
def test_file(self): collection = RulesCollection() collection.register(DuplicateEntity()) file_name = 'testResources/ansible-smell/hardcodepassword5.yml' good_runner = Runner(playbook=file_name, rules=collection) name_list = [] for item in good_runner.run(): name_list.append(str(item).split('matched')[0]) if len(name_list) != 0: print([ item for item, count in collections.Counter(name_list).items() if count > 1 ])
def test_rule_no_handler() -> None: """Verify rule.""" collection = RulesCollection() collection.register(UseHandlerRatherThanWhenChangedRule()) lintable = Lintable('examples/playbooks/rule-no-handler.yml') results = Runner(lintable, rules=collection).run() assert len(results) == 3 assert results[0].filename == 'examples/playbooks/roles/a-role/tasks/main.yml' assert results[0].linenumber == 3 assert results[1].filename == 'examples/playbooks/rule-no-handler.yml' assert results[1].linenumber == 14 assert results[2].filename == 'examples/playbooks/rule-no-handler.yml' assert results[2].linenumber == 18
class RuleTestCase(unittest.TestCase): """Base class to test ansible-lint rules. """ name = None rule = None clear_fn: typing.Optional[typing.Callable] = None def setUp(self): """Initialize lint rules collection. """ if not self.rule or not self.name: return # Collect the default rules and add the rule to test. self.rules = RulesCollection() self.rules.register(self.rule) if callable(self.clear_fn): self.clear_fn() # pylint: disable=not-callable def list_resources( self, success: bool = True, search: typing.Optional[str] = None) -> typing.List[str]: return list_resources(self.name, success=success, search=search) def lint(self, success: bool = True, search: typing.Optional[str] = None): """ Run the lint rule's check to given resource data files. """ if not self.rule or not self.name: return for filepath in self.list_resources(success, search=search): runner = Runner(self.rules, filepath, [], [], []) res = runner.run() if success: self.assertEqual(0, len(res), res) # No errors else: self.assertTrue(len(res) > 0, res) # Something went wrong def test_10_ok_cases(self): self.lint() def test_20_ng_cases(self): self.lint(False)
def test_file(self): collection = RulesCollection() collection.register(ComplexExpression()) file_name = 'testResources/ansible-smell/complexexpression.yml' good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run())
def rule_runner(request): """Return runner for a specific rule class.""" rule_class = request.param collection = RulesCollection() collection.register(rule_class()) return RunFromText(collection)
def test_file(self): collection = RulesCollection() collection.register(HttpWithoutTls()) file_name = 'testResources/ansible-smell/httpwithouttls2.yml' good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run())
def test_file(self): collection = RulesCollection() collection.register(SuspiciousComment()) file_name = str('testResources/ansible-smell/suspiciouscomment.yml') good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run())
def test_file(self): collection = RulesCollection() collection.register(WeakCryptographyalgo()) file_name = str('testResources/ansible-smell/weakcryptographyalgo.yml') good_runner = Runner(playbook=file_name, rules=collection) print(good_runner.run())
def test_rules_collection() -> RulesCollection: """Instantiate a roles collection for tests.""" collection = RulesCollection() collection.register(RoleNames()) return collection