summaryrefslogtreecommitdiffstats
path: root/gitlint-core/gitlint/tests/contrib/rules/test_signedoff_by.py
diff options
context:
space:
mode:
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.py28
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])