Skip to content

Commit 24c1c10

Browse files
committed
refactor(release): modify reset_hard signature to enforce keyword argument
- Renames the parameter to . - Requires it to be passed as a keyword argument. - Updates all callers and tests.
1 parent ce58b87 commit 24c1c10

4 files changed

Lines changed: 31 additions & 11 deletions

File tree

tests/tools/private/release/git_test.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_checkout_track_remote_existing_branch(
4141
self.mock_run_git.assert_called_once_with(
4242
"checkout", "my-branch", capture_output=False
4343
)
44-
mock_reset_hard.assert_called_once_with("origin/my-branch")
44+
mock_reset_hard.assert_called_once_with(reset_to="origin/my-branch")
4545

4646

4747
class GitFetchTest(unittest.TestCase):
@@ -165,5 +165,25 @@ def test_apply_check_conflict(self):
165165
self.assertFalse(result)
166166

167167

168+
class GitResetHardTest(unittest.TestCase):
169+
def setUp(self):
170+
self.git = Git(".")
171+
self.patcher = patch.object(self.git, "_run_git")
172+
self.mock_run_git = self.patcher.start()
173+
self.addCleanup(self.patcher.stop)
174+
175+
def test_reset_hard_default(self):
176+
self.git.reset_hard()
177+
self.mock_run_git.assert_called_once_with(
178+
"reset", "--hard", "HEAD", capture_output=False
179+
)
180+
181+
def test_reset_hard_custom(self):
182+
self.git.reset_hard(reset_to="my-commit")
183+
self.mock_run_git.assert_called_once_with(
184+
"reset", "--hard", "my-commit", capture_output=False
185+
)
186+
187+
168188
if __name__ == "__main__":
169189
unittest.main()

tests/tools/private/release/process_backports_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def mock_resolve(items):
193193
# Verify reset_hard was called to reset the existing branch to main
194194
self.mock_git.reset_hard.assert_has_calls(
195195
[
196-
call("main"),
196+
call(reset_to="main"),
197197
]
198198
)
199199
self.mock_git.cherry_pick.assert_called_once_with("abcdef12")
@@ -315,8 +315,8 @@ def mock_resolve(items):
315315
)
316316
self.mock_git.reset_hard.assert_has_calls(
317317
[
318-
call("12345678"),
319-
call("main_sha"),
318+
call(reset_to="12345678"),
319+
call(reset_to="main_sha"),
320320
]
321321
)
322322
self.mock_git.push.assert_not_called()

tools/private/release/git.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def checkout(
8080
self._run_git(*cmd, capture_output=False)
8181

8282
if should_reset_hard:
83-
self.reset_hard(f"{track_remote}/{ref}")
83+
self.reset_hard(reset_to=f"{track_remote}/{ref}")
8484

8585
def add(self, *files: str) -> None:
8686
"""Stages files for commit.
@@ -191,13 +191,13 @@ def cherry_pick_abort(self) -> None:
191191
"""Aborts an in-progress cherry-pick operation."""
192192
self._run_git("cherry-pick", "--abort", capture_output=False)
193193

194-
def reset_hard(self, ref: str = "HEAD") -> None:
194+
def reset_hard(self, *, reset_to: str = "HEAD") -> None:
195195
"""Resets the index and working tree to a specific reference.
196196
197197
Args:
198-
ref: The git reference to reset to. Defaults to 'HEAD'.
198+
reset_to: The git reference to reset to. Defaults to 'HEAD'.
199199
"""
200-
self._run_git("reset", "--hard", ref, capture_output=False)
200+
self._run_git("reset", "--hard", reset_to, capture_output=False)
201201

202202
def status(self) -> str:
203203
"""Returns the output of git status --porcelain.

tools/private/release/process_backports.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ def _sync_changelog_to_main(
256256
else:
257257
if self.git.branch_exists(backport_branch):
258258
self.git.checkout(backport_branch)
259-
self.git.reset_hard(main_branch)
259+
self.git.reset_hard(reset_to=main_branch)
260260
else:
261261
self.git.checkout(backport_branch, create_branch=True)
262262

@@ -325,7 +325,7 @@ def _sync_changelog_to_main(
325325
print(f"Warning: Failed to enable auto-merge: {e}")
326326
finally:
327327
if args.dry_run:
328-
self.git.reset_hard(main_start_sha)
328+
self.git.reset_hard(reset_to=main_start_sha)
329329
self.git.checkout(release_branch)
330330

331331
def _apply_version_marker_diffs(
@@ -527,7 +527,7 @@ def _run_internal(self) -> int:
527527
finally:
528528
if args.dry_run:
529529
print(f"[DRY RUN] Resetting branch {branch_name} to {start_sha}")
530-
self.git.reset_hard(start_sha)
530+
self.git.reset_hard(reset_to=start_sha)
531531

532532
if successful_pr_nums:
533533
self._sync_changelog_to_main(

0 commit comments

Comments
 (0)