diff options
Diffstat (limited to 'gitlint/tests/contrib')
-rw-r--r-- | gitlint/tests/contrib/__init__.py | 0 | ||||
-rw-r--r-- | gitlint/tests/contrib/test_contrib_rules.py | 72 | ||||
-rw-r--r-- | gitlint/tests/contrib/test_conventional_commit.py | 47 | ||||
-rw-r--r-- | gitlint/tests/contrib/test_signedoff_by.py | 32 |
4 files changed, 0 insertions, 151 deletions
diff --git a/gitlint/tests/contrib/__init__.py b/gitlint/tests/contrib/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/gitlint/tests/contrib/__init__.py +++ /dev/null diff --git a/gitlint/tests/contrib/test_contrib_rules.py b/gitlint/tests/contrib/test_contrib_rules.py deleted file mode 100644 index 3fa4048..0000000 --- a/gitlint/tests/contrib/test_contrib_rules.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -from gitlint.tests.base import BaseTestCase -from gitlint.contrib import rules as contrib_rules -from gitlint.tests import contrib as contrib_tests -from gitlint import rule_finder, rules - -from gitlint.utils import ustr - - -class ContribRuleTests(BaseTestCase): - - CONTRIB_DIR = os.path.dirname(os.path.realpath(contrib_rules.__file__)) - - def test_contrib_tests_exist(self): - """ Tests that every contrib rule file has an associated test file. - While this doesn't guarantee that every contrib rule has associated tests (as we don't check the content - of the tests file), it's a good leading indicator. """ - - contrib_tests_dir = os.path.dirname(os.path.realpath(contrib_tests.__file__)) - contrib_test_files = os.listdir(contrib_tests_dir) - - # Find all python files in the contrib dir and assert there's a corresponding test file - for filename in os.listdir(self.CONTRIB_DIR): - if filename.endswith(".py") and filename not in ["__init__.py"]: - expected_test_file = ustr(u"test_" + filename) - error_msg = u"Every Contrib Rule must have associated tests. " + \ - "Expected test file {0} not found.".format(os.path.join(contrib_tests_dir, - expected_test_file)) - self.assertIn(expected_test_file, contrib_test_files, error_msg) - - def test_contrib_rule_naming_conventions(self): - """ Tests that contrib rules follow certain naming conventions. - We can test for this at test time (and not during runtime like rule_finder.assert_valid_rule_class does) - because these are contrib rules: once they're part of gitlint they can't change unless they pass this test - again. - """ - rule_classes = rule_finder.find_rule_classes(self.CONTRIB_DIR) - - for clazz in rule_classes: - # Contrib rule names start with "contrib-" - self.assertTrue(clazz.name.startswith("contrib-")) - - # Contrib line rules id's start with "CL" - if issubclass(clazz, rules.LineRule): - if clazz.target == rules.CommitMessageTitle: - self.assertTrue(clazz.id.startswith("CT")) - elif clazz.target == rules.CommitMessageBody: - self.assertTrue(clazz.id.startswith("CB")) - - def test_contrib_rule_uniqueness(self): - """ Tests that all contrib rules have unique identifiers. - We can test for this at test time (and not during runtime like rule_finder.assert_valid_rule_class does) - because these are contrib rules: once they're part of gitlint they can't change unless they pass this test - again. - """ - rule_classes = rule_finder.find_rule_classes(self.CONTRIB_DIR) - - # Not very efficient way of checking uniqueness, but it works :-) - class_names = [rule_class.name for rule_class in rule_classes] - class_ids = [rule_class.id for rule_class in rule_classes] - self.assertEqual(len(set(class_names)), len(class_names)) - self.assertEqual(len(set(class_ids)), len(class_ids)) - - def test_contrib_rule_instantiated(self): - """ Tests that all contrib rules can be instantiated without errors. """ - rule_classes = rule_finder.find_rule_classes(self.CONTRIB_DIR) - - # No exceptions = what we want :-) - for rule_class in rule_classes: - rule_class() diff --git a/gitlint/tests/contrib/test_conventional_commit.py b/gitlint/tests/contrib/test_conventional_commit.py deleted file mode 100644 index ea808fd..0000000 --- a/gitlint/tests/contrib/test_conventional_commit.py +++ /dev/null @@ -1,47 +0,0 @@ - -# -*- coding: utf-8 -*- -from gitlint.tests.base import BaseTestCase -from gitlint.rules import RuleViolation -from gitlint.contrib.rules.conventional_commit import ConventionalCommit -from gitlint.config import LintConfig - - -class ContribConventionalCommitTests(BaseTestCase): - - def test_enable(self): - # Test that rule can be enabled in config - for rule_ref in ['CT1', 'contrib-title-conventional-commits']: - config = LintConfig() - config.contrib = [rule_ref] - self.assertIn(ConventionalCommit(), config.rules) - - def test_conventional_commits(self): - rule = ConventionalCommit() - - # No violations when using a correct type and format - for type in ["fix", "feat", "chore", "docs", "style", "refactor", "perf", "test", "revert"]: - violations = rule.validate(type + u": föo", None) - self.assertListEqual([], violations) - - # assert violation on wrong type - expected_violation = RuleViolation("CT1", "Title does not start with one of fix, feat, chore, docs," - " style, refactor, perf, test, revert", u"bår: foo") - violations = rule.validate(u"bår: foo", None) - self.assertListEqual([expected_violation], violations) - - # assert violation on wrong format - expected_violation = RuleViolation("CT1", "Title does not follow ConventionalCommits.org format " - "'type(optional-scope): description'", u"fix föo") - violations = rule.validate(u"fix föo", None) - self.assertListEqual([expected_violation], violations) - - # assert no violation when adding new type - rule = ConventionalCommit({'types': [u"föo", u"bär"]}) - for typ in [u"föo", u"bär"]: - violations = rule.validate(typ + u": hür dur", None) - self.assertListEqual([], violations) - - # assert violation when using incorrect type when types have been reconfigured - violations = rule.validate(u"fix: hür dur", None) - expected_violation = RuleViolation("CT1", u"Title does not start with one of föo, bär", u"fix: hür dur") - self.assertListEqual([expected_violation], violations) diff --git a/gitlint/tests/contrib/test_signedoff_by.py b/gitlint/tests/contrib/test_signedoff_by.py deleted file mode 100644 index 934aec5..0000000 --- a/gitlint/tests/contrib/test_signedoff_by.py +++ /dev/null @@ -1,32 +0,0 @@ - -# -*- coding: utf-8 -*- -from gitlint.tests.base import BaseTestCase -from gitlint.rules import RuleViolation -from gitlint.contrib.rules.signedoff_by import SignedOffBy - -from gitlint.config import LintConfig - - -class ContribSignedOffByTests(BaseTestCase): - - def test_enable(self): - # Test that rule can be enabled in config - for rule_ref in ['CC1', 'contrib-body-requires-signed-off-by']: - config = LintConfig() - config.contrib = [rule_ref] - self.assertIn(SignedOffBy(), config.rules) - - def test_signedoff_by(self): - # No violations when 'Signed-Off-By' line is present - rule = SignedOffBy() - violations = rule.validate(self.gitcommit(u"Föobar\n\nMy Body\nSigned-Off-By: John Smith")) - self.assertListEqual([], violations) - - # Assert violation when no 'Signed-Off-By' line is present - violations = rule.validate(self.gitcommit(u"Föobar\n\nMy Body")) - expected_violation = RuleViolation("CC1", "Body does not contain a 'Signed-Off-By' line", line_nr=1) - self.assertListEqual(violations, [expected_violation]) - - # Assert violation when no 'Signed-Off-By' in title but not in body - violations = rule.validate(self.gitcommit(u"Signed-Off-By\n\nFöobar")) - self.assertListEqual(violations, [expected_violation]) |