class TestOctalPermissionsRuleWithFile(unittest.TestCase): collection = RulesCollection() VALID_MODES = [0o777, 0o775, 0o770, 0o755, 0o750, 0o711, 0o710, 0o700, 0o666, 0o664, 0o660, 0o644, 0o640, 0o600, 0o555, 0o551, 0o550, 0o511, 0o510, 0o500, 0o444, 0o440, 0o400] INVALID_MODES = [777, 775, 770, 755, 750, 711, 710, 700, 666, 664, 660, 644, 640, 622, 620, 600, 555, 551, 550, # 511 == 0o777, 510 == 0o776, 500 == 0o764 444, 440, 400] def setUp(self): self.rule = OctalPermissionsRule() self.collection.register(self.rule) self.runner = RunFromText(self.collection) def test_success(self): results = self.runner.run_playbook(SUCCESS_TASKS) self.assertEqual(0, len(results)) def test_fail(self): results = self.runner.run_playbook(FAIL_TASKS) self.assertEqual(4, len(results)) def test_valid_modes(self): for mode in self.VALID_MODES: self.assertFalse(self.rule.is_invalid_permission(mode), msg="0o%o should be a valid mode" % mode) def test_invalid_modes(self): for mode in self.INVALID_MODES: self.assertTrue(self.rule.is_invalid_permission(mode), msg="%d should be an invalid mode" % mode)
class TestSkipPlaybookItems(unittest.TestCase): rulesdir = os.path.join('lib', 'ansiblelint', 'rules') collection = RulesCollection.create_from_directory(rulesdir) def setUp(self): self.runner = RunFromText(self.collection) def test_pre_tasks(self): results = self.runner.run_playbook(PLAYBOOK_PRE_TASKS) self.assertEqual(2, len(results)) def test_post_tasks(self): results = self.runner.run_playbook(PLAYBOOK_POST_TASKS) self.assertEqual(2, len(results)) def test_play_handlers(self): results = self.runner.run_playbook(PLAYBOOK_HANDLERS) self.assertEqual(2, len(results)) def test_two_plays(self): results = self.runner.run_playbook(PLAYBOOK_TWO_PLAYS) self.assertEqual(2, len(results)) def test_with_block(self): results = self.runner.run_playbook(PLAYBOOK_WITH_BLOCK) self.assertEqual(4, len(results))
class TestOctalPermissionsRuleWithFile(unittest.TestCase): collection = RulesCollection() VALID_MODES = [ 0o777, 0o775, 0o770, 0o755, 0o750, 0o711, 0o710, 0o700, 0o666, 0o664, 0o660, 0o644, 0o640, 0o600, 0o555, 0o551, 0o550, 0o511, 0o510, 0o500, 0o444, 0o440, 0o400 ] INVALID_MODES = [ 777, 775, 770, 755, 750, 711, 710, 700, 666, 664, 660, 644, 640, 622, 620, 600, 555, 551, 550, # 511 == 0o777, 510 == 0o776, 500 == 0o764 444, 440, 400 ] def setUp(self): self.rule = OctalPermissionsRule() self.collection.register(self.rule) self.runner = RunFromText(self.collection) def test_success(self): results = self.runner.run_playbook(SUCCESS_TASKS) self.assertEqual(0, len(results)) def test_fail(self): results = self.runner.run_playbook(FAIL_TASKS) self.assertEqual(4, len(results)) def test_valid_modes(self): for mode in self.VALID_MODES: self.assertFalse(self.rule.is_invalid_permission(mode), msg="0o%o should be a valid mode" % mode) def test_invalid_modes(self): for mode in self.INVALID_MODES: self.assertTrue(self.rule.is_invalid_permission(mode), msg="%d should be an invalid mode" % mode)
class TestPackageHasRetry(unittest.TestCase): collection = RulesCollection() collection.register(PackageHasRetryRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_file_positive(self): results = self.runner.run_playbook(SUCCESS) self.assertEqual(0, len(results)) def test_file_negative(self): results = self.runner.run_playbook(FAILURE) self.assertEqual(2, len(results))
class TestEnvVarsInCommand(unittest.TestCase): collection = RulesCollection() collection.register(EnvVarsInCommandRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_success(self): results = self.runner.run_playbook(SUCCESS_PLAY_TASKS) self.assertEqual(0, len(results)) def test_fail(self): results = self.runner.run_playbook(FAIL_PLAY_TASKS) self.assertEqual(2, len(results))
class TestShellWithoutPipeFail(unittest.TestCase): collection = RulesCollection() collection.register(ShellWithoutPipefail()) def setUp(self): self.runner = RunFromText(self.collection) def test_fail(self): results = self.runner.run_playbook(FAIL_TASKS) self.assertEqual(3, len(results)) def test_success(self): results = self.runner.run_playbook(SUCCESS_TASKS) self.assertEqual(0, len(results))
class TestEnvVarsInCommand(unittest.TestCase): collection = RulesCollection() collection.register(EnvVarsInCommandRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_success(self): results = self.runner.run_playbook(SUCCESS_PLAY_TASKS) self.assertEqual(0, len(results)) def test_fail(self): results = self.runner.run_playbook(FAIL_PLAY_TASKS) self.assertEqual(2, len(results))
class TestSudoRule(unittest.TestCase): collection = RulesCollection() collection.register(SudoRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_run_role_fail(self): results = self.runner.run_role_tasks_main(ROLE_2_ERRORS) self.assertEqual(2, len(results)) def test_run_role_pass(self): results = self.runner.run_role_tasks_main(ROLE_0_ERRORS) self.assertEqual(0, len(results)) def test_play_root_and_task_fail(self): results = self.runner.run_playbook(PLAY_4_ERRORS) self.assertEqual(4, len(results)) def test_play_task_fail(self): results = self.runner.run_playbook(PLAY_1_ERROR) self.assertEqual(1, len(results))
class TestSudoRule(unittest.TestCase): collection = RulesCollection() collection.register(SudoRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_run_role_fail(self): results = self.runner.run_role_tasks_main(ROLE_2_ERRORS) self.assertEqual(2, len(results)) def test_run_role_pass(self): results = self.runner.run_role_tasks_main(ROLE_0_ERRORS) self.assertEqual(0, len(results)) def test_play_root_and_task_fail(self): results = self.runner.run_playbook(PLAY_4_ERRORS) self.assertEqual(4, len(results)) def test_play_task_fail(self): results = self.runner.run_playbook(PLAY_1_ERROR) self.assertEqual(1, len(results))
class TestComparisonToEmptyStringRule(unittest.TestCase): collection = RulesCollection() collection.register(ComparisonToEmptyStringRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_success(self): results = self.runner.run_role_tasks_main(SUCCESS_TASKS) self.assertEqual(0, len(results)) def test_fail(self): results = self.runner.run_playbook(FAIL_TASKS) self.assertEqual(2, len(results))
class TestComparisonToEmptyStringRule(unittest.TestCase): collection = RulesCollection() collection.register(ComparisonToEmptyStringRule()) def setUp(self): self.runner = RunFromText(self.collection) def test_compare_when(self): results = self.runner.run_role_tasks_main(PASS_WHEN) self.assertEqual(0, len(results)) def test_compare_is_empty(self): results = self.runner.run_playbook(FAIL_IS_EMPTY) self.assertEqual(1, len(results)) def test_compare_is_not_empty(self): results = self.runner.run_role_tasks_main(FAIL_IS_NOT_EMPTY) self.assertEqual(1, len(results))
class TestSkipInsideYaml(unittest.TestCase): rulesdir = os.path.join('lib', 'ansiblelint', 'rules') collection = RulesCollection.create_from_directory(rulesdir) def setUp(self): self.runner = RunFromText(self.collection) def test_role_tasks(self): results = self.runner.run_role_tasks_main(ROLE_TASKS) self.assertEqual(5, len(results)) def test_playbook(self): results = self.runner.run_playbook(PLAYBOOK) self.assertEqual(7, len(results)) def test_role_meta(self): results = self.runner.run_role_meta_main(ROLE_META) self.assertEqual(0, len(results))
class TestSkipInsideYaml(unittest.TestCase): rulesdir = os.path.join('lib', 'ansiblelint', 'rules') collection = RulesCollection.create_from_directory(rulesdir) def setUp(self): self.runner = RunFromText(self.collection) def test_role_tasks(self): results = self.runner.run_role_tasks_main(ROLE_TASKS) self.assertEqual(5, len(results)) def test_playbook(self): results = self.runner.run_playbook(PLAYBOOK) self.assertEqual(8, len(results)) def test_role_meta(self): results = self.runner.run_role_meta_main(ROLE_META) self.assertEqual(0, len(results))
class TestSkipInsideYaml(unittest.TestCase): rulesdir = os.path.join('lib', 'ansiblelint', 'rules') collection = RulesCollection([rulesdir]) def setUp(self): self.runner = RunFromText(self.collection) def test_role_tasks(self): results = self.runner.run_role_tasks_main(ROLE_TASKS) self.assertEqual(1, len(results)) def test_role_tasks_with_block(self): results = self.runner.run_role_tasks_main(ROLE_TASKS_WITH_BLOCK) self.assertEqual(4, len(results)) def test_playbook(self): results = self.runner.run_playbook(PLAYBOOK) self.assertEqual(7, len(results)) def test_role_meta(self): results = self.runner.run_role_meta_main(ROLE_META) self.assertEqual(0, len(results))