Skip to content

Commit a2e59a9

Browse files
committed
fix(tests): fix broken release tests
1 parent 9727d27 commit a2e59a9

2 files changed

Lines changed: 37 additions & 15 deletions

File tree

‎tests/test_release_script.py‎

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def test_main_pre_phase_replaces_latest_tagged_version_and_rebuilds_table(
8181
)
8282

8383

84-
def test_main_post_phase_leaves_readme_unchanged_without_rebuilding_table(
84+
def test_main_fails_for_invalid_release_phase_without_running_git(
8585
tmp_path, monkeypatch
8686
):
8787
readme_path = tmp_path / "README.md"
@@ -97,11 +97,16 @@ def test_main_post_phase_leaves_readme_unchanged_without_rebuilding_table(
9797

9898
release_script = _load_release_script_module()
9999

100-
with patch.object(release_script.subprocess, "run") as mock_run:
100+
with (
101+
patch.object(release_script.subprocess, "run") as mock_run,
102+
pytest.raises(
103+
SystemExit,
104+
match="Invalid 'RELEASE_SCRIPT_PHASE': 'post'. Expected 'pre'.",
105+
),
106+
):
101107
release_script.main()
102108

103109
updated_text = readme_path.read_text(encoding="utf-8")
104-
assert updated_text == readme_path.read_text(encoding="utf-8")
105110
assert "Version: 1.2.3" in updated_text
106111
assert "| keep | this | table |" in updated_text
107112
mock_run.assert_not_called()
@@ -176,7 +181,7 @@ def test_main_pre_phase_fails_when_latest_tagged_version_is_missing(
176181
release_script.main()
177182

178183

179-
def test_main_post_phase_leaves_readme_unchanged_when_release_version_is_missing(
184+
def test_main_fails_for_invalid_release_phase_when_release_version_is_missing(
180185
tmp_path, monkeypatch
181186
):
182187
readme_path = tmp_path / "README.md"
@@ -188,7 +193,13 @@ def test_main_post_phase_leaves_readme_unchanged_when_release_version_is_missing
188193

189194
release_script = _load_release_script_module()
190195

191-
with patch.object(release_script.subprocess, "run") as mock_run:
196+
with (
197+
patch.object(release_script.subprocess, "run") as mock_run,
198+
pytest.raises(
199+
SystemExit,
200+
match="Invalid 'RELEASE_SCRIPT_PHASE': 'post'. Expected 'pre'.",
201+
),
202+
):
192203
release_script.main()
193204

194205
assert readme_path.read_text(encoding="utf-8") == "Version: 1.2.2\n"
@@ -235,7 +246,7 @@ def test_release_script_dry_run_env_pre_phase_prints_summary_without_modifying_f
235246
)
236247

237248

238-
def test_release_script_dry_run_env_post_phase_prints_summary_without_modifying_files(
249+
def test_release_script_dry_run_env_post_phase_fails_before_git_commands(
239250
tmp_path, monkeypatch, capsys
240251
):
241252
readme_path = tmp_path / "README.md"
@@ -249,12 +260,15 @@ def test_release_script_dry_run_env_post_phase_prints_summary_without_modifying_
249260

250261
release_script = _load_release_script_module()
251262

252-
with patch.object(release_script.subprocess, "run") as mock_run:
263+
with (
264+
patch.object(release_script.subprocess, "run") as mock_run,
265+
pytest.raises(
266+
SystemExit,
267+
match="Invalid 'RELEASE_SCRIPT_PHASE': 'post'. Expected 'pre'.",
268+
),
269+
):
253270
release_script.main()
254271

255272
assert readme_path.read_text(encoding="utf-8") == original_text
256273
mock_run.assert_not_called()
257-
output = capsys.readouterr().err
258-
assert output.startswith("[")
259-
assert "INFO" in output
260-
assert "Would leave README.md at release version '2.0.0'" in output
274+
assert capsys.readouterr().err == ""

‎tests/test_tasks.py‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ def test_release_runs_container_steps(self):
461461
"chore(release): update changelog for v1.2.3",
462462
]
463463
),
464+
call(["git", "push", "origin", "HEAD"]),
464465
call(["git", "push", "origin", "v1.2.3"]),
465466
]
466467
)
@@ -782,6 +783,7 @@ def test_release_without_containers_accepts_none_stage_string(self):
782783
"chore(release): update changelog for v1.2.3",
783784
]
784785
),
786+
call(["git", "push", "origin", "HEAD"]),
785787
call(["git", "push", "origin", "v1.2.3"]),
786788
]
787789
)
@@ -831,8 +833,11 @@ def test_release_without_containers_can_disable_changelog_updates(self):
831833
mock_bump.assert_called_once_with(
832834
component="patch", stage=None, dry_run=False, allow_dirty=False
833835
)
834-
mock_run_command.assert_called_once_with(
835-
["git", "push", "origin", "v1.2.3"]
836+
mock_run_command.assert_has_calls(
837+
[
838+
call(["git", "push", "origin", "HEAD"]),
839+
call(["git", "push", "origin", "v1.2.3"]),
840+
]
836841
)
837842
mock_build_package.assert_called_once_with(clean_dist=True)
838843
mock_publish.assert_called_once_with(build_first=False)
@@ -877,8 +882,11 @@ def test_release_without_containers_prompts_once_for_dirty_repo(self):
877882
mock_bump.assert_called_once_with(
878883
component="patch", stage=None, dry_run=False, allow_dirty=True
879884
)
880-
mock_run_command.assert_called_once_with(
881-
["git", "push", "origin", "v1.2.3"]
885+
mock_run_command.assert_has_calls(
886+
[
887+
call(["git", "push", "origin", "HEAD"]),
888+
call(["git", "push", "origin", "v1.2.3"]),
889+
]
882890
)
883891
mock_build_package.assert_called_once_with(clean_dist=True)
884892
mock_publish.assert_called_once_with(build_first=False)

0 commit comments

Comments
 (0)