diff options
Diffstat (limited to 'gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py')
-rw-r--r-- | gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py b/gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py new file mode 100644 index 0000000..bf526a0 --- /dev/null +++ b/gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py @@ -0,0 +1,28 @@ +from gitlint.config import LintConfig +from gitlint.contrib.rules.signedoff_by import SignedOffBy +from gitlint.rules import RuleViolation +from gitlint.tests.base import BaseTestCase + + +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]) |