mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-18 11:45:11 +08:00
103 lines
3.8 KiB
Python
Executable File
103 lines
3.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import unittest
|
|
from commit_msg import GitCommitMessage
|
|
|
|
|
|
class TestCommitMsg(unittest.TestCase):
|
|
def testNoInput(self):
|
|
m = GitCommitMessage().parse_lines([])
|
|
self.assertEqual(len(m.body_lines), 0)
|
|
m = GitCommitMessage().parse_lines(None)
|
|
self.assertEqual(len(m.body_lines), 0)
|
|
|
|
def testParsing(self):
|
|
m = GitCommitMessage().parse_lines(
|
|
["This is a subject line", " ", "body line 1", "body line 2"]
|
|
)
|
|
self.assertEqual(m.subject, "This is a subject line")
|
|
self.assertTrue(m.has_subject_body_separator)
|
|
self.assertEqual(m.body_lines[0], "body line 1")
|
|
self.assertEqual(m.body_lines[1], "body line 2")
|
|
|
|
def testNonImperative(self):
|
|
m = GitCommitMessage().parse_lines(["Adds new file"])
|
|
self.assertFalse(m.check_subject_imperative())
|
|
|
|
m.parse_lines(["Adding new file"])
|
|
self.assertFalse(m.check_subject_imperative())
|
|
|
|
# Default to accept
|
|
m.parse_lines(["Foo bar"])
|
|
self.assertTrue(m.check_subject_imperative())
|
|
|
|
def testSubjectBodySeparator(self):
|
|
m = GitCommitMessage().parse_lines(["This is a subject line"])
|
|
self.assertTrue(m.check_subject_body_separtor())
|
|
m = GitCommitMessage().parse_lines(["This is a subject line", "body"])
|
|
self.assertFalse(m.check_subject_body_separtor())
|
|
m = GitCommitMessage().parse_lines(["This is a subject line", "", "body"])
|
|
self.assertTrue(m.check_subject_body_separtor())
|
|
m = GitCommitMessage().parse_lines(["This is a subject line", " ", "body"])
|
|
self.assertTrue(m.check_subject_body_separtor())
|
|
|
|
def testSubjectLimit(self):
|
|
m = GitCommitMessage().parse_lines(
|
|
["This subject line is exactly 48 characters long"]
|
|
)
|
|
self.assertTrue(m.check_subject_limit())
|
|
m = GitCommitMessage().parse_lines(
|
|
["This is a very long subject line that will obviously exceed the limit"]
|
|
)
|
|
self.assertFalse(m.check_subject_limit())
|
|
m = GitCommitMessage().parse_lines(
|
|
["This 50-character subject line ends with an LF EOL\n"]
|
|
)
|
|
self.assertTrue(m.check_subject_limit())
|
|
|
|
def testSubjectCapitalized(self):
|
|
m = GitCommitMessage().parse_lines(["This subject line is capitalized"])
|
|
self.assertTrue(m.check_subject_capitalized())
|
|
m = GitCommitMessage().parse_lines(["this subject line is not capitalized"])
|
|
self.assertFalse(m.check_subject_capitalized())
|
|
|
|
def testSubjectNoPeriod(self):
|
|
m = GitCommitMessage().parse_lines(["This subject line ends with a period."])
|
|
self.assertFalse(m.check_subject_no_period())
|
|
m = GitCommitMessage().parse_lines(
|
|
["This subject line does not end with a period"]
|
|
)
|
|
self.assertTrue(m.check_subject_no_period())
|
|
|
|
def testBodyLimit(self):
|
|
m = GitCommitMessage().parse_lines(
|
|
["This is a subject line", " ", "A short body line"]
|
|
)
|
|
self.assertTrue(m.check_body_limit())
|
|
m = GitCommitMessage().parse_lines(
|
|
[
|
|
"This is a subject line",
|
|
" ",
|
|
"A very long body line which certainly exceeds the 72 char recommended limit",
|
|
]
|
|
)
|
|
self.assertFalse(m.check_body_limit())
|
|
m = GitCommitMessage().parse_lines(
|
|
[
|
|
"This is a subject line",
|
|
" ",
|
|
"A body line with exactly 72 characters, followed by an EOL (Unix-style).\n",
|
|
]
|
|
)
|
|
self.assertTrue(m.check_body_limit())
|
|
|
|
def testCheckAllRules(self):
|
|
m = GitCommitMessage().parse_lines(
|
|
["This is a subject line", "", "A short body line"]
|
|
)
|
|
self.assertEqual(0, m.check_the_seven_rules())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|