From f0afa8171ac9b89ffae5f39e9547a8f01cdb1361 Mon Sep 17 00:00:00 2001 From: emil Date: Sun, 21 Jun 2026 15:32:07 +0000 Subject: [PATCH] GRM-34: fix: handle same-version update in release.py --- scripts/release.py | 4 ++-- tests/unit/test_release.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/release.py b/scripts/release.py index 9dcf445..777dfad 100644 --- a/scripts/release.py +++ b/scripts/release.py @@ -103,6 +103,8 @@ def update_init_version(new_version: str) -> None: """Update __version__ in __init__.py.""" with open(INIT_FILE) as f: content = f.read() + if not re.search(r'^__version__\s*=\s*"[^"]*"', content, flags=re.MULTILINE): + raise click.ClickException(_("Could not find __version__ in {file}", file=INIT_FILE)) updated = re.sub( r'^__version__\s*=\s*"[^"]*"', f'__version__ = "{new_version}"', @@ -110,8 +112,6 @@ def update_init_version(new_version: str) -> None: count=1, flags=re.MULTILINE, ) - if updated == content: - raise click.ClickException(_("Could not find __version__ in {file}", file=INIT_FILE)) with open(INIT_FILE, "w") as f: f.write(updated) diff --git a/tests/unit/test_release.py b/tests/unit/test_release.py index 4e503ce..3863021 100644 --- a/tests/unit/test_release.py +++ b/tests/unit/test_release.py @@ -118,6 +118,14 @@ class TestUpdateInitVersion: update_init_version("0.2.0") assert '__version__ = "0.2.0"' in init_file.read_text() + def test_same_version_ok(self, tmp_path, monkeypatch) -> None: + """Updating to the same version should not raise.""" + init_file = tmp_path / "__init__.py" + init_file.write_text('__version__ = "0.1.0"\n') + monkeypatch.setattr("scripts.release.INIT_FILE", str(init_file)) + update_init_version("0.1.0") + assert '__version__ = "0.1.0"' in init_file.read_text() + def test_no_version_raises(self, tmp_path, monkeypatch) -> None: init_file = tmp_path / "__init__.py" init_file.write_text('"""module"""\n')