-
-
Notifications
You must be signed in to change notification settings - Fork 334
Expand file tree
/
Copy pathtest_cz_search_filter.py
More file actions
76 lines (62 loc) · 2.74 KB
/
test_cz_search_filter.py
File metadata and controls
76 lines (62 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import pytest
from commitizen.config.toml_config import TomlConfig
from commitizen.cz.customize import CustomizeCommitsCz
TOML_WITH_SEARCH_FILTER = r"""
[tool.commitizen]
name = "cz_customize"
[tool.commitizen.customize]
message_template = "{{change_type}}:{% if scope %} ({{scope}}){% endif %}{% if breaking %}!{% endif %} {{message}}"
[[tool.commitizen.customize.questions]]
type = "select"
name = "change_type"
message = "Select the type of change you are committing"
use_search_filter = true
use_jk_keys = false
choices = [
{value = "fix", name = "fix: A bug fix. Correlates with PATCH in SemVer"},
{value = "feat", name = "feat: A new feature. Correlates with MINOR in SemVer"},
{value = "docs", name = "docs: Documentation only changes"},
{value = "style", name = "style: Changes that do not affect the meaning of the code"},
{value = "refactor", name = "refactor: A code change that neither fixes a bug nor adds a feature"},
{value = "perf", name = "perf: A code change that improves performance"},
{value = "test", name = "test: Adding missing or correcting existing tests"},
{value = "build", name = "build: Changes that affect the build system or external dependencies"},
{value = "ci", name = "ci: Changes to CI configuration files and scripts"}
]
[[tool.commitizen.customize.questions]]
type = "input"
name = "scope"
message = "What is the scope of this change? (class or file name): (press [enter] to skip)"
[[tool.commitizen.customize.questions]]
type = "input"
name = "message"
message = "Write a short and imperative summary of the code changes: (lower case and no period)"
"""
@pytest.fixture
def config():
return TomlConfig(data=TOML_WITH_SEARCH_FILTER, path="not_exist.toml")
def test_questions_with_search_filter(config):
"""Test that questions are properly configured with search filter"""
cz = CustomizeCommitsCz(config)
questions = cz.questions()
# Test that the first question (change_type) has search filter enabled
assert questions[0]["type"] == "select"
assert questions[0]["name"] == "change_type"
assert questions[0]["use_search_filter"] is True
assert questions[0]["use_jk_keys"] is False
# Test that the choices are properly configured
choices = questions[0]["choices"]
assert len(choices) == 9 # We have 9 commit types
assert choices[0]["value"] == "fix"
assert choices[1]["value"] == "feat"
def test_message_template(config):
"""Test that the message template is properly configured"""
cz = CustomizeCommitsCz(config)
template = cz.message(
{
"change_type": "feat",
"scope": "search",
"message": "add search filter support",
}
)
assert template == "feat: (search) add search filter support"