diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-12-04 03:31:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-12-04 03:31:49 +0000 |
commit | 23d0ac82f3d68663ddc74a0e1f9b963beb8d62b9 (patch) | |
tree | fc37aa2c97a3d28b3dee7f3892041158981ed335 /gitlint/tests/contrib/test_contrib_rules.py | |
parent | Releasing progress-linux version 0.16.0-1. (diff) | |
download | gitlint-23d0ac82f3d68663ddc74a0e1f9b963beb8d62b9.tar.xz gitlint-23d0ac82f3d68663ddc74a0e1f9b963beb8d62b9.zip |
Merging upstream version 0.17.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gitlint/tests/contrib/test_contrib_rules.py')
-rw-r--r-- | gitlint/tests/contrib/test_contrib_rules.py | 69 |
1 files changed, 0 insertions, 69 deletions
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() |