Adding upstream version 4.6.0+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f3ad83a1a5
commit
7791e7adfd
230 changed files with 24945 additions and 0 deletions
155
tests/test_cz_conventional_commits.py
Normal file
155
tests/test_cz_conventional_commits.py
Normal file
|
@ -0,0 +1,155 @@
|
|||
import pytest
|
||||
|
||||
from commitizen.cz.conventional_commits.conventional_commits import (
|
||||
ConventionalCommitsCz,
|
||||
parse_scope,
|
||||
parse_subject,
|
||||
)
|
||||
from commitizen.cz.exceptions import AnswerRequiredError
|
||||
|
||||
valid_scopes = ["", "simple", "dash-separated", "camelCaseUPPERCASE"]
|
||||
|
||||
scopes_transformations = [["with spaces", "with-spaces"], [None, ""]]
|
||||
|
||||
valid_subjects = ["this is a normal text", "aword"]
|
||||
|
||||
subjects_transformations = [["with dot.", "with dot"]]
|
||||
|
||||
invalid_subjects = ["", " ", ".", " .", "", None]
|
||||
|
||||
|
||||
def test_parse_scope_valid_values():
|
||||
for valid_scope in valid_scopes:
|
||||
assert valid_scope == parse_scope(valid_scope)
|
||||
|
||||
|
||||
def test_scopes_transformations():
|
||||
for scopes_transformation in scopes_transformations:
|
||||
invalid_scope, transformed_scope = scopes_transformation
|
||||
assert transformed_scope == parse_scope(invalid_scope)
|
||||
|
||||
|
||||
def test_parse_subject_valid_values():
|
||||
for valid_subject in valid_subjects:
|
||||
assert valid_subject == parse_subject(valid_subject)
|
||||
|
||||
|
||||
def test_parse_subject_invalid_values():
|
||||
for valid_subject in invalid_subjects:
|
||||
with pytest.raises(AnswerRequiredError):
|
||||
parse_subject(valid_subject)
|
||||
|
||||
|
||||
def test_subject_transformations():
|
||||
for subject_transformation in subjects_transformations:
|
||||
invalid_subject, transformed_subject = subject_transformation
|
||||
assert transformed_subject == parse_subject(invalid_subject)
|
||||
|
||||
|
||||
def test_questions(config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
questions = conventional_commits.questions()
|
||||
assert isinstance(questions, list)
|
||||
assert isinstance(questions[0], dict)
|
||||
|
||||
|
||||
def test_choices_all_have_keyboard_shortcuts(config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
questions = conventional_commits.questions()
|
||||
|
||||
list_questions = (q for q in questions if q["type"] == "list")
|
||||
for select in list_questions:
|
||||
assert all("key" in choice for choice in select["choices"])
|
||||
|
||||
|
||||
def test_small_answer(config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
answers = {
|
||||
"prefix": "fix",
|
||||
"scope": "users",
|
||||
"subject": "email pattern corrected",
|
||||
"is_breaking_change": False,
|
||||
"body": "",
|
||||
"footer": "",
|
||||
}
|
||||
message = conventional_commits.message(answers)
|
||||
assert message == "fix(users): email pattern corrected"
|
||||
|
||||
|
||||
def test_long_answer(config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
answers = {
|
||||
"prefix": "fix",
|
||||
"scope": "users",
|
||||
"subject": "email pattern corrected",
|
||||
"is_breaking_change": False,
|
||||
"body": "complete content",
|
||||
"footer": "closes #24",
|
||||
}
|
||||
message = conventional_commits.message(answers)
|
||||
assert (
|
||||
message
|
||||
== "fix(users): email pattern corrected\n\ncomplete content\n\ncloses #24" # noqa
|
||||
)
|
||||
|
||||
|
||||
def test_breaking_change_in_footer(config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
answers = {
|
||||
"prefix": "fix",
|
||||
"scope": "users",
|
||||
"subject": "email pattern corrected",
|
||||
"is_breaking_change": True,
|
||||
"body": "complete content",
|
||||
"footer": "migrate by renaming user to users",
|
||||
}
|
||||
message = conventional_commits.message(answers)
|
||||
print(message)
|
||||
assert (
|
||||
message
|
||||
== "fix(users): email pattern corrected\n\ncomplete content\n\nBREAKING CHANGE: migrate by renaming user to users" # noqa
|
||||
)
|
||||
|
||||
|
||||
def test_example(config):
|
||||
"""just testing a string is returned. not the content"""
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
example = conventional_commits.example()
|
||||
assert isinstance(example, str)
|
||||
|
||||
|
||||
def test_schema(config):
|
||||
"""just testing a string is returned. not the content"""
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
schema = conventional_commits.schema()
|
||||
assert isinstance(schema, str)
|
||||
|
||||
|
||||
def test_info(config):
|
||||
"""just testing a string is returned. not the content"""
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
info = conventional_commits.info()
|
||||
assert isinstance(info, str)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("commit_message", "expected_message"),
|
||||
[
|
||||
(
|
||||
"test(test_scope): this is test msg",
|
||||
"this is test msg",
|
||||
),
|
||||
(
|
||||
"test(test_scope)!: this is test msg",
|
||||
"this is test msg",
|
||||
),
|
||||
(
|
||||
"test!(test_scope): this is test msg",
|
||||
"",
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_process_commit(commit_message, expected_message, config):
|
||||
conventional_commits = ConventionalCommitsCz(config)
|
||||
message = conventional_commits.process_commit(commit_message)
|
||||
assert message == expected_message
|
Loading…
Add table
Add a link
Reference in a new issue