diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-12-04 03:31:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-12-04 03:31:41 +0000 |
commit | 72b8c35be4293bd21de123854491c658c53af100 (patch) | |
tree | 735464cc081879561927a37650b1102beaa1f4f9 /gitlint/tests/contrib | |
parent | Adding upstream version 0.16.0. (diff) | |
download | gitlint-72b8c35be4293bd21de123854491c658c53af100.tar.xz gitlint-72b8c35be4293bd21de123854491c658c53af100.zip |
Adding upstream version 0.17.0.upstream/0.17.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gitlint/tests/contrib')
-rw-r--r-- | gitlint/tests/contrib/__init__.py | 0 | ||||
-rw-r--r-- | gitlint/tests/contrib/rules/__init__.py | 0 | ||||
-rw-r--r-- | gitlint/tests/contrib/rules/test_conventional_commit.py | 75 | ||||
-rw-r--r-- | gitlint/tests/contrib/rules/test_signedoff_by.py | 32 | ||||
-rw-r--r-- | gitlint/tests/contrib/test_contrib_rules.py | 69 |
5 files changed, 0 insertions, 176 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/rules/__init__.py b/gitlint/tests/contrib/rules/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/gitlint/tests/contrib/rules/__init__.py +++ /dev/null diff --git a/gitlint/tests/contrib/rules/test_conventional_commit.py b/gitlint/tests/contrib/rules/test_conventional_commit.py deleted file mode 100644 index 5da5cd5..0000000 --- a/gitlint/tests/contrib/rules/test_conventional_commit.py +++ /dev/null @@ -1,75 +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", "ci", "build"]: - violations = rule.validate(type + ": 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, ci, build", "bår: foo") - violations = rule.validate("bår: foo", None) - self.assertListEqual([expected_violation], violations) - - # assert violation when use strange chars after correct type - expected_violation = RuleViolation("CT1", "Title does not start with one of fix, feat, chore, docs," - " style, refactor, perf, test, revert, ci, build", - "feat_wrong_chars: föo") - violations = rule.validate("feat_wrong_chars: föo", None) - self.assertListEqual([expected_violation], violations) - - # assert violation when use strange chars after correct type - expected_violation = RuleViolation("CT1", "Title does not start with one of fix, feat, chore, docs," - " style, refactor, perf, test, revert, ci, build", - "feat_wrong_chars(scope): föo") - violations = rule.validate("feat_wrong_chars(scope): föo", 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'", "fix föo") - violations = rule.validate("fix föo", None) - self.assertListEqual([expected_violation], violations) - - # assert no violation when use ! for breaking changes without scope - violations = rule.validate("feat!: föo", None) - self.assertListEqual([], violations) - - # assert no violation when use ! for breaking changes with scope - violations = rule.validate("fix(scope)!: föo", None) - self.assertListEqual([], violations) - - # assert no violation when adding new type - rule = ConventionalCommit({'types': ["föo", "bär"]}) - for typ in ["föo", "bär"]: - violations = rule.validate(typ + ": hür dur", None) - self.assertListEqual([], violations) - - # assert violation when using incorrect type when types have been reconfigured - violations = rule.validate("fix: hür dur", None) - expected_violation = RuleViolation("CT1", "Title does not start with one of föo, bär", "fix: hür dur") - self.assertListEqual([expected_violation], violations) - - # assert no violation when adding new type named with numbers - rule = ConventionalCommit({'types': ["föo123", "123bär"]}) - for typ in ["föo123", "123bär"]: - violations = rule.validate(typ + ": hür dur", None) - self.assertListEqual([], violations) diff --git a/gitlint/tests/contrib/rules/test_signedoff_by.py b/gitlint/tests/contrib/rules/test_signedoff_by.py deleted file mode 100644 index 0369cdc..0000000 --- a/gitlint/tests/contrib/rules/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("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("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("Signed-off-by\n\nFöobar")) - self.assertListEqual(violations, [expected_violation]) diff --git a/gitlint/tests/contrib/test_contrib_rules.py b/gitlint/tests/contrib/test_contrib_rules.py deleted file mode 100644 index 8ab6539..0000000 --- a/gitlint/tests/contrib/test_contrib_rules.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -from gitlint.tests.base import BaseTestCase -from gitlint.contrib import rules as contrib_rules -from gitlint.tests.contrib import rules as contrib_tests -from gitlint import rule_finder, rules - - -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 = "test_" + filename - error_msg = "Every Contrib Rule must have associated tests. " + \ - f"Expected test file {os.path.join(contrib_tests_dir, expected_test_file)} not found." - 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() |