summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2021-06-26 14:48:59 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-06-29 18:17:19 +0200
commit86837c350450e0da64260c8e206c2cf6f882fb11 (patch)
tree5d80a4e0661c3787015fe8540d7a178baa0a6f3d /script
parent498261fba45c55a108539c8308d1ccbb442094c7 (diff)
downloadastroid-git-86837c350450e0da64260c8e206c2cf6f882fb11.tar.gz
Better check for the TBA in the Changelog
Diffstat (limited to 'script')
-rw-r--r--script/bump_changelog.py23
-rw-r--r--script/test_bump_changelog.py34
2 files changed, 44 insertions, 13 deletions
diff --git a/script/bump_changelog.py b/script/bump_changelog.py
index f1e04420..23788002 100644
--- a/script/bump_changelog.py
+++ b/script/bump_changelog.py
@@ -8,7 +8,6 @@ from pathlib import Path
DEFAULT_CHANGELOG_PATH = Path("ChangeLog")
err = "in the changelog, fix that first!"
-TBA_ERROR_MSG = "More than one release date 'TBA' %s" % err
NEW_VERSION_ERROR_MSG = "The text for this version '{version}' did not exists %s" % err
NEXT_VERSION_ERROR_MSG = (
"The text for the next version '{version}' already exists %s" % err
@@ -40,9 +39,7 @@ class VersionType(enum.Enum):
PATCH = 2
-def generic_get_next_version(
- version: str, version_type: VersionType = VersionType.PATCH
-) -> str:
+def get_next_version(version: str, version_type: VersionType) -> str:
new_version = version.split(".")
part_to_increase = new_version[version_type.value]
if "-" in part_to_increase:
@@ -53,22 +50,30 @@ def generic_get_next_version(
return ".".join(new_version)
-def get_next_version(version: str) -> str:
+def get_version_type(version: str) -> VersionType:
if version.endswith("0.0"):
version_type = VersionType.MAJOR
elif version.endswith("0"):
version_type = VersionType.MINOR
else:
version_type = VersionType.PATCH
- next_version = generic_get_next_version(version, version_type)
- return next_version
+ return version_type
def transform_content(content: str, version: str) -> str:
- next_version = get_next_version(version)
+ version_type = get_version_type(version)
+ next_version = get_next_version(version, version_type)
wn_next_version = FULL_WHATS_NEW_TEXT.format(version=next_version)
# There is only one field where the release date is TBA
- assert content.count(RELEASE_DATE_TEXT) == 1, TBA_ERROR_MSG
+ if version_type in [VersionType.MAJOR, VersionType.MINOR]:
+ assert (
+ content.count(RELEASE_DATE_TEXT) <= 1
+ ), f"There should be only one release date 'TBA' ({version}) {err}"
+ else:
+ next_minor_version = get_next_version(version, VersionType.MINOR)
+ assert (
+ content.count(RELEASE_DATE_TEXT) <= 2
+ ), f"There should be only two release dates 'TBA' ({version} and {next_minor_version}) {err}"
# There is already a release note for the version we want to release
assert (
content.count(FULL_WHATS_NEW_TEXT.format(version=version)) == 1
diff --git a/script/test_bump_changelog.py b/script/test_bump_changelog.py
index c51b59e7..fcdbd225 100644
--- a/script/test_bump_changelog.py
+++ b/script/test_bump_changelog.py
@@ -1,5 +1,5 @@
import pytest
-from bump_changelog import VersionType, generic_get_next_version, transform_content
+from bump_changelog import VersionType, get_next_version, transform_content
@pytest.mark.parametrize(
@@ -19,8 +19,8 @@ from bump_changelog import VersionType, generic_get_next_version, transform_cont
["2.0.0", VersionType.MAJOR, "3.0.0"],
],
)
-def test_generic_get_next_version(version, version_type, expected):
- assert generic_get_next_version(version, version_type) == expected
+def test_get_next_version(version, version_type, expected):
+ assert get_next_version(version, version_type) == expected
@pytest.mark.parametrize(
@@ -41,7 +41,7 @@ What's New in astroid 2.6.0?
Release Date: TBA
""",
"2.6.1",
- "More than one release date 'TBA'",
+ r"There should be only two release dates 'TBA' \(2.6.1 and 2.7.0\)",
],
[
"""===================
@@ -68,6 +68,32 @@ Release Date: 2012-02-05
"2.6.1",
"the next version '2.6.2' already exists",
],
+ [
+ """
+What's New in astroid 3.0.0?
+============================
+Release Date: TBA
+
+What's New in astroid 2.6.10?
+============================
+Release Date: TBA
+""",
+ "3.0.0",
+ r"There should be only one release date 'TBA' \(3.0.0\)",
+ ],
+ [
+ """
+What's New in astroid 2.7.0?
+============================
+Release Date: TBA
+
+What's New in astroid 2.6.10?
+============================
+Release Date: TBA
+""",
+ "2.7.0",
+ r"There should be only one release date 'TBA' \(2.7.0\)",
+ ],
],
)
def test_update_content_error(old_content, version, expected_error):