2019-12-06 16:59:35 +00:00
""" Unit tests for the evergreen_task_timeout script. """
2024-05-16 18:00:17 -04:00
2019-12-06 16:59:35 +00:00
import unittest
2024-06-18 17:50:28 -07:00
from git import Commit , Repo
2019-12-06 16:59:35 +00:00
2024-06-18 17:50:28 -07:00
from buildscripts . validate_commit_message import is_valid_commit
2020-04-29 19:00:37 +01:00
2020-04-28 20:46:00 -04:00
class ValidateCommitMessageTest ( unittest . TestCase ) :
2024-05-20 22:17:04 -04:00
def test_valid ( self ) :
2024-06-18 17:50:28 -07:00
fake_repo = Repo ( )
2019-12-06 16:59:35 +00:00
messages = [
2024-06-18 17:50:28 -07:00
Commit ( repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = " SERVER-44338 " ) ,
Commit ( repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = ' Revert " SERVER-60 ' ) ,
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " Import wiredtiger: 58115abb6fbb3c1cc7bfd087d41a47347bce9a69 from branch mongodb-4.4 " ,
) ,
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = ' Revert " Import wiredtiger: 58115abb6fbb3c1cc7bfd087d41a47347bce9a69 from branch mongodb-4.4 " ' ,
) ,
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " SERVER-44338 blablablalbabla \n multiline message \n asdfasdf " ,
) ,
2020-01-23 17:52:51 +00:00
]
2021-09-07 12:31:17 -04:00
2024-09-20 09:01:02 -07:00
self . assertTrue ( all ( is_valid_commit ( message ) for message in messages ) )
2021-09-07 12:31:17 -04:00
2024-05-20 22:17:04 -04:00
def test_invalid ( self ) :
2024-06-18 17:50:28 -07:00
fake_repo = Repo ( )
2021-07-13 15:55:44 -04:00
messages = [
2024-06-18 17:50:28 -07:00
Commit (
repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = " SERVER- "
) , # missing number
Commit (
repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = " Revert SERVER-60 "
) , # missing quote before SERVER
Commit ( repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = " " ) , # empty value
Commit (
repo = fake_repo , binsha = b " deadbeefdeadbeefdead " , message = " nonsense "
) , # nonsense value
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " SERVER-123 asdf \n https://spruce.mongodb.com " ,
) , # Contains some banned strings
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " SERVER-123 asdf \n https://evergreen.mongodb.com " ,
) , # Contains some banned strings
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " SERVER-123 asdf \n Anything in this description will be included in the commit message. Replace or delete this text before merging. Add links to testing in the comments of the PR. " ,
) , # Contains some banned strings
2024-07-23 12:35:07 -04:00
Commit (
repo = fake_repo ,
binsha = b " deadbeefdeadbeefdead " ,
message = " SERVER-123 asdf \n Anything \n \n in this description will be included in the commit message. \n Replace or delete this text before merging. Add links to testing in the \n comments of the PR. " ,
) , # Contains some banned strings with extra newlines
2021-07-13 15:55:44 -04:00
]
2021-12-29 10:57:03 -05:00
2024-09-20 09:01:02 -07:00
self . assertTrue ( all ( not is_valid_commit ( message ) for message in messages ) )