Skip to content

Commit e1a780e

Browse files
committed
test(changelog): test a user defined tag (independent of bump)
This new tag was added to a "feat:" rather than "bump:" commit.
1 parent b795f41 commit e1a780e

File tree

2 files changed

+32
-23
lines changed

2 files changed

+32
-23
lines changed

tests/CHANGELOG_FOR_TEST.md

+2
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454

5555
## v1.0.0b1 (2019-01-17)
5656

57+
## user_def (2019-01-10)
58+
5759
### feat
5860

5961
- py3 only, tests and conventional commits 1.0

tests/test_changelog.py

+30-23
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@
461461
("v1.0.0", "aa44a92d68014d0da98965c0c2cb8c07957d4362", "2019-03-01"),
462462
("1.0.0b2", "aab33d13110f26604fb786878856ec0b9e5fc32b", "2019-01-18"),
463463
("v1.0.0b1", "7c7e96b723c2aaa1aec3a52561f680adf0b60e97", "2019-01-17"),
464+
("user_def", "ed830019581c83ba633bfd734720e6758eca6061", "2019-01-10"),
464465
("v0.9.11", "c52eca6f74f844ab3ffbde61d98ef96071e132b7", "2018-12-17"),
465466
("v0.9.10", "b3f89892222340150e32631ae6b7aab65230036f", "2018-09-22"),
466467
("v0.9.9", "684e0259cc95c7c5e94854608cd3dcebbd53219e", "2018-09-22"),
@@ -645,9 +646,10 @@ def test_get_commit_tag_is_None(gitcommits, tags):
645646
},
646647
},
647648
{"version": "1.0.0b2", "date": "2019-01-18", "changes": {}},
649+
{"version": "v1.0.0b1", "date": "2019-01-17", "changes": {}},
648650
{
649-
"version": "v1.0.0b1",
650-
"date": "2019-01-17",
651+
"version": "user_def",
652+
"date": "2019-01-10",
651653
"changes": {
652654
"feat": [
653655
{
@@ -813,31 +815,36 @@ def _filter_tree(tag_pattern: Pattern, tree: Iterable[Dict]) -> List[Dict[str, s
813815
return out
814816

815817

816-
def test_generate_tree_from_commits(gitcommits, tags):
817-
parser = defaults.commit_parser
818-
changelog_pattern = defaults.bump_pattern
819-
tree = changelog.generate_tree_from_commits(
820-
gitcommits, tags, parser, changelog_pattern
821-
)
822-
823-
assert tuple(tree) == COMMITS_TREE
824-
825-
826-
def test_generate_tree_from_commits_release_filter(gitcommits, tags):
818+
@pytest.mark.parametrize(
819+
"tag_parser",
820+
[
821+
(None), # backwards compatibility check
822+
(".*"), # default tag_parser
823+
(r"v[0-9]*\.[0-9]*\.[0-9]*"), # version filter
824+
],
825+
)
826+
def test_generate_tree_from_commits(gitcommits, tags, tag_parser):
827827
parser = defaults.commit_parser
828828
changelog_pattern = defaults.bump_pattern
829829

830-
# match release tags only
831-
tag_parser = r"v([0-9]+)\.([0-9]+)\.([0-9]+)"
832-
tag_pattern = re.compile(tag_parser)
833-
834-
tree = changelog.generate_tree_from_commits(
835-
gitcommits, tags, parser, changelog_pattern, tag_pattern=tag_pattern
836-
)
837-
838-
expected_tree = _filter_tree(tag_pattern, COMMITS_TREE)
830+
# generate the tree and expected_tree
831+
if tag_parser is None:
832+
tree = changelog.generate_tree_from_commits(
833+
gitcommits, tags, parser, changelog_pattern
834+
)
835+
# commits tree is unfiltered
836+
expected_tree = COMMITS_TREE
837+
else:
838+
tag_pattern = re.compile(tag_parser)
839+
tree = changelog.generate_tree_from_commits(
840+
gitcommits, tags, parser, changelog_pattern, tag_pattern=tag_pattern
841+
)
842+
# filter the COMMITS_TREE to what we expect it to be
843+
expected_tree = _filter_tree(tag_pattern, COMMITS_TREE)
839844

840-
assert list(tree) == expected_tree
845+
# compare the contents of each tree
846+
for outcome, expected in zip(tree, expected_tree):
847+
assert outcome == expected
841848

842849

843850
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)