diff options
Diffstat (limited to 'gitlint-core/gitlint/tests/rules/test_user_rules.py')
-rw-r--r-- | gitlint-core/gitlint/tests/rules/test_user_rules.py | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/gitlint-core/gitlint/tests/rules/test_user_rules.py b/gitlint-core/gitlint/tests/rules/test_user_rules.py index d66a7cc..fc8d423 100644 --- a/gitlint-core/gitlint/tests/rules/test_user_rules.py +++ b/gitlint-core/gitlint/tests/rules/test_user_rules.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os import sys @@ -33,7 +31,7 @@ class UserRuleTests(BaseTestCase): # Do some basic asserts on our user rule self.assertEqual(classes[0].id, "UC1") self.assertEqual(classes[0].name, "my-üser-commit-rule") - expected_option = options.IntOption('violation-count', 1, "Number of violåtions to return") + expected_option = options.IntOption("violation-count", 1, "Number of violåtions to return") self.assertListEqual(classes[0].options_spec, [expected_option]) self.assertTrue(hasattr(classes[0], "validate")) @@ -44,10 +42,15 @@ class UserRuleTests(BaseTestCase): self.assertListEqual(violations, [rules.RuleViolation("UC1", "Commit violåtion 1", "Contënt 1", 1)]) # Have it return more violations - rule_class.options['violation-count'].value = 2 + rule_class.options["violation-count"].value = 2 violations = rule_class.validate("false-commit-object (ignored)") - self.assertListEqual(violations, [rules.RuleViolation("UC1", "Commit violåtion 1", "Contënt 1", 1), - rules.RuleViolation("UC1", "Commit violåtion 2", "Contënt 2", 2)]) + self.assertListEqual( + violations, + [ + rules.RuleViolation("UC1", "Commit violåtion 1", "Contënt 1", 1), + rules.RuleViolation("UC1", "Commit violåtion 2", "Contënt 2", 2), + ], + ) def test_extra_path_specified_by_file(self): # Test that find_rule_classes can handle an extra path given as a file name instead of a directory @@ -67,7 +70,7 @@ class UserRuleTests(BaseTestCase): classes = find_rule_classes(user_rule_path) # convert classes to strings and sort them so we can compare them - class_strings = sorted([str(clazz) for clazz in classes]) + class_strings = sorted(str(clazz) for clazz in classes) expected = ["<class 'my_commit_rules.MyUserCommitRule'>", "<class 'parent_package.InitFileRule'>"] self.assertListEqual(class_strings, expected) @@ -96,23 +99,23 @@ class UserRuleTests(BaseTestCase): def test_assert_valid_rule_class(self): class MyLineRuleClass(rules.LineRule): - id = 'UC1' - name = 'my-lïne-rule' + id = "UC1" + name = "my-lïne-rule" target = rules.CommitMessageTitle def validate(self): pass class MyCommitRuleClass(rules.CommitRule): - id = 'UC2' - name = 'my-cömmit-rule' + id = "UC2" + name = "my-cömmit-rule" def validate(self): pass class MyConfigurationRuleClass(rules.ConfigurationRule): - id = 'UC3' - name = 'my-cönfiguration-rule' + id = "UC3" + name = "my-cönfiguration-rule" def apply(self): pass @@ -125,8 +128,9 @@ class UserRuleTests(BaseTestCase): def test_assert_valid_rule_class_negative(self): # general test to make sure that incorrect rules will raise an exception user_rule_path = self.get_sample_path("user_rules/incorrect_linerule") - with self.assertRaisesMessage(UserRuleError, - "User-defined rule class 'MyUserLineRule' must have a 'validate' method"): + with self.assertRaisesMessage( + UserRuleError, "User-defined rule class 'MyUserLineRule' must have a 'validate' method" + ): find_rule_classes(user_rule_path) def test_assert_valid_rule_class_negative_parent(self): @@ -134,13 +138,14 @@ class UserRuleTests(BaseTestCase): class MyRuleClass: pass - expected_msg = "User-defined rule class 'MyRuleClass' must extend from gitlint.rules.LineRule, " + \ - "gitlint.rules.CommitRule or gitlint.rules.ConfigurationRule" + expected_msg = ( + "User-defined rule class 'MyRuleClass' must extend from gitlint.rules.LineRule, " + "gitlint.rules.CommitRule or gitlint.rules.ConfigurationRule" + ) with self.assertRaisesMessage(UserRuleError, expected_msg): assert_valid_rule_class(MyRuleClass) def test_assert_valid_rule_class_negative_id(self): - for parent_class in [rules.LineRule, rules.CommitRule]: class MyRuleClass(parent_class): @@ -159,8 +164,9 @@ class UserRuleTests(BaseTestCase): # Rule ids must not start with one of the reserved id letters for letter in ["T", "R", "B", "M", "I"]: MyRuleClass.id = letter + "1" - expected_msg = f"The id '{letter}' of 'MyRuleClass' is invalid. " + \ - "Gitlint reserves ids starting with R,T,B,M,I" + expected_msg = ( + f"The id '{letter}' of 'MyRuleClass' is invalid. Gitlint reserves ids starting with R,T,B,M,I" + ) with self.assertRaisesMessage(UserRuleError, expected_msg): assert_valid_rule_class(MyRuleClass) @@ -181,7 +187,6 @@ class UserRuleTests(BaseTestCase): assert_valid_rule_class(MyRuleClass) def test_assert_valid_rule_class_negative_option_spec(self): - for parent_class in [rules.LineRule, rules.CommitRule]: class MyRuleClass(parent_class): @@ -190,8 +195,10 @@ class UserRuleTests(BaseTestCase): # if set, option_spec must be a list of gitlint options MyRuleClass.options_spec = "föo" - expected_msg = "The options_spec attribute of user-defined rule class 'MyRuleClass' must be a list " + \ + expected_msg = ( + "The options_spec attribute of user-defined rule class 'MyRuleClass' must be a list " "of gitlint.options.RuleOption" + ) with self.assertRaisesMessage(UserRuleError, expected_msg): assert_valid_rule_class(MyRuleClass) @@ -201,21 +208,23 @@ class UserRuleTests(BaseTestCase): assert_valid_rule_class(MyRuleClass) def test_assert_valid_rule_class_negative_validate(self): - baseclasses = [rules.LineRule, rules.CommitRule] for clazz in baseclasses: + class MyRuleClass(clazz): id = "UC1" name = "my-rüle-class" - with self.assertRaisesMessage(UserRuleError, - "User-defined rule class 'MyRuleClass' must have a 'validate' method"): + with self.assertRaisesMessage( + UserRuleError, "User-defined rule class 'MyRuleClass' must have a 'validate' method" + ): assert_valid_rule_class(MyRuleClass) # validate attribute - not a method MyRuleClass.validate = "föo" - with self.assertRaisesMessage(UserRuleError, - "User-defined rule class 'MyRuleClass' must have a 'validate' method"): + with self.assertRaisesMessage( + UserRuleError, "User-defined rule class 'MyRuleClass' must have a 'validate' method" + ): assert_valid_rule_class(MyRuleClass) def test_assert_valid_rule_class_negative_apply(self): @@ -241,8 +250,10 @@ class UserRuleTests(BaseTestCase): pass # no target - expected_msg = "The target attribute of the user-defined LineRule class 'MyRuleClass' must be either " + \ - "gitlint.rules.CommitMessageTitle or gitlint.rules.CommitMessageBody" + expected_msg = ( + "The target attribute of the user-defined LineRule class 'MyRuleClass' must be either " + "gitlint.rules.CommitMessageTitle or gitlint.rules.CommitMessageBody" + ) with self.assertRaisesMessage(UserRuleError, expected_msg): assert_valid_rule_class(MyRuleClass) |