@@ -1522,6 +1522,120 @@ def test_changelog_template_extras_precedance(
15221522 assert changelog .read_text () == "from-command - from-config - from-plugin"
15231523
15241524
1525+ @pytest .mark .usefixtures ("tmp_commitizen_project" )
1526+ @pytest .mark .freeze_time ("2021-06-11" )
1527+ def test_changelog_only_tag_matching_tag_format_included_prefix (
1528+ mocker : MockFixture ,
1529+ changelog_path : Path ,
1530+ config_path : Path ,
1531+ ):
1532+ with open (config_path , "a" , encoding = "utf-8" ) as f :
1533+ f .write ('\n tag_format = "custom${version}"\n ' )
1534+ create_file_and_commit ("feat: new file" )
1535+ git .tag ("v0.2.0" )
1536+ create_file_and_commit ("feat: another new file" )
1537+ git .tag ("0.2.0" )
1538+ git .tag ("random0.2.0" )
1539+ testargs = ["cz" , "bump" , "--changelog" , "--yes" ]
1540+ mocker .patch .object (sys , "argv" , testargs )
1541+ cli .main ()
1542+ wait_for_tag ()
1543+ create_file_and_commit ("feat: another new file" )
1544+ cli .main ()
1545+ with open (changelog_path ) as f :
1546+ out = f .read ()
1547+ assert out .startswith ("## custom0.3.0 (2021-06-11)" )
1548+ assert "## v0.2.0 (2021-06-11)" not in out
1549+ assert "## 0.2.0 (2021-06-11)" not in out
1550+
1551+
1552+ @pytest .mark .usefixtures ("tmp_commitizen_project" )
1553+ def test_changelog_only_tag_matching_tag_format_included_prefix_sep (
1554+ mocker : MockFixture ,
1555+ changelog_path : Path ,
1556+ config_path : Path ,
1557+ ):
1558+ with open (config_path , "a" , encoding = "utf-8" ) as f :
1559+ f .write ('\n tag_format = "custom-${version}"\n ' )
1560+ create_file_and_commit ("feat: new file" )
1561+ git .tag ("v0.2.0" )
1562+ create_file_and_commit ("feat: another new file" )
1563+ git .tag ("0.2.0" )
1564+ git .tag ("random0.2.0" )
1565+ wait_for_tag ()
1566+ testargs = ["cz" , "bump" , "--changelog" , "--yes" ]
1567+ mocker .patch .object (sys , "argv" , testargs )
1568+ cli .main ()
1569+ with open (changelog_path ) as f :
1570+ out = f .read ()
1571+ create_file_and_commit ("feat: new version another new file" )
1572+ create_file_and_commit ("feat: new version some new file" )
1573+ testargs = ["cz" , "bump" , "--changelog" ]
1574+ mocker .patch .object (sys , "argv" , testargs )
1575+ cli .main ()
1576+ with open (changelog_path ) as f :
1577+ out = f .read ()
1578+ assert out .startswith ("## custom-0.3.0" )
1579+ assert "## v0.2.0" not in out
1580+ assert "## 0.2.0" not in out
1581+
1582+
1583+ @pytest .mark .usefixtures ("tmp_commitizen_project" )
1584+ @pytest .mark .freeze_time ("2021-06-11" )
1585+ def test_changelog_only_tag_matching_tag_format_included_suffix (
1586+ mocker : MockFixture ,
1587+ changelog_path : Path ,
1588+ config_path : Path ,
1589+ ):
1590+ with open (config_path , "a" , encoding = "utf-8" ) as f :
1591+ f .write ('\n tag_format = "${version}custom"\n ' )
1592+ create_file_and_commit ("feat: new file" )
1593+ git .tag ("v0.2.0" )
1594+ create_file_and_commit ("feat: another new file" )
1595+ git .tag ("0.2.0" )
1596+ git .tag ("random0.2.0" )
1597+ testargs = ["cz" , "bump" , "--changelog" , "--yes" ]
1598+ mocker .patch .object (sys , "argv" , testargs )
1599+ cli .main ()
1600+ wait_for_tag ()
1601+ create_file_and_commit ("feat: another new file" )
1602+ cli .main ()
1603+ wait_for_tag ()
1604+ with open (changelog_path ) as f :
1605+ out = f .read ()
1606+ assert out .startswith ("## 0.3.0custom (2021-06-11)" )
1607+ assert "## v0.2.0 (2021-06-11)" not in out
1608+ assert "## 0.2.0 (2021-06-11)" not in out
1609+
1610+
1611+ @pytest .mark .usefixtures ("tmp_commitizen_project" )
1612+ @pytest .mark .freeze_time ("2021-06-11" )
1613+ def test_changelog_only_tag_matching_tag_format_included_suffix_sep (
1614+ mocker : MockFixture ,
1615+ changelog_path : Path ,
1616+ config_path : Path ,
1617+ ):
1618+ with open (config_path , "a" , encoding = "utf-8" ) as f :
1619+ f .write ('\n tag_format = "${version}-custom"\n ' )
1620+ create_file_and_commit ("feat: new file" )
1621+ git .tag ("v0.2.0" )
1622+ create_file_and_commit ("feat: another new file" )
1623+ git .tag ("0.2.0" )
1624+ git .tag ("random0.2.0" )
1625+ testargs = ["cz" , "bump" , "--changelog" , "--yes" ]
1626+ mocker .patch .object (sys , "argv" , testargs )
1627+ cli .main ()
1628+ wait_for_tag ()
1629+ create_file_and_commit ("feat: another new file" )
1630+ cli .main ()
1631+ wait_for_tag ()
1632+ with open (changelog_path ) as f :
1633+ out = f .read ()
1634+ assert out .startswith ("## 0.3.0-custom (2021-06-11)" )
1635+ assert "## v0.2.0 (2021-06-11)" not in out
1636+ assert "## 0.2.0 (2021-06-11)" not in out
1637+
1638+
15251639def test_changelog_template_extra_quotes (
15261640 mocker : MockFixture ,
15271641 tmp_commitizen_project : Path ,
0 commit comments