diff --git a/e2e_tests/helpers.py b/e2e_tests/helpers.py index 2cd507c..7ed8137 100644 --- a/e2e_tests/helpers.py +++ b/e2e_tests/helpers.py @@ -174,7 +174,10 @@ class TempGitRepositoryWorktree: git --git-dir .git-main-working-tree config core.bare true """ ) - return self.tmpdir.name + commit = git.Repo( + f"{self.tmpdir.name}/.git-main-working-tree" + ).head.commit.hexsha + return (self.tmpdir.name, commit) def __exit__(self, exc_type, exc_val, exc_tb): del self.tmpdir diff --git a/e2e_tests/test_worktree_clean.py b/e2e_tests/test_worktree_clean.py index 17f16ce..bdcf22e 100644 --- a/e2e_tests/test_worktree_clean.py +++ b/e2e_tests/test_worktree_clean.py @@ -6,7 +6,7 @@ from helpers import * def test_worktree_clean(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 assert "test" in os.listdir(base_dir) @@ -17,7 +17,7 @@ def test_worktree_clean(): def test_worktree_clean_refusal_no_tracking_branch(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 @@ -31,7 +31,7 @@ def test_worktree_clean_refusal_no_tracking_branch(): def test_worktree_clean_refusal_uncommited_changes_new_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -47,7 +47,7 @@ def test_worktree_clean_refusal_uncommited_changes_new_file(): def test_worktree_clean_refusal_uncommited_changes_changed_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -63,7 +63,7 @@ def test_worktree_clean_refusal_uncommited_changes_changed_file(): def test_worktree_clean_refusal_uncommited_changes_cleand_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -81,7 +81,7 @@ def test_worktree_clean_refusal_uncommited_changes_cleand_file(): def test_worktree_clean_refusal_commited_changes(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -99,7 +99,7 @@ def test_worktree_clean_refusal_commited_changes(): def test_worktree_clean_refusal_tracking_branch_mismatch(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -117,7 +117,7 @@ def test_worktree_clean_refusal_tracking_branch_mismatch(): def test_worktree_clean_fail_from_subdir(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 diff --git a/e2e_tests/test_worktree_config_presistent_branch.py b/e2e_tests/test_worktree_config_presistent_branch.py index c8f3f6a..9174b77 100644 --- a/e2e_tests/test_worktree_config_presistent_branch.py +++ b/e2e_tests/test_worktree_config_presistent_branch.py @@ -6,7 +6,7 @@ from helpers import * def test_worktree_never_clean_persistent_branches(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( """ @@ -33,7 +33,7 @@ def test_worktree_never_clean_persistent_branches(): def test_worktree_clean_branch_merged_into_persistent(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( """ @@ -72,7 +72,7 @@ def test_worktree_clean_branch_merged_into_persistent(): def test_worktree_no_clean_unmerged_branch(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( """ @@ -105,7 +105,7 @@ def test_worktree_no_clean_unmerged_branch(): def test_worktree_delete_branch_merged_into_persistent(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( """ diff --git a/e2e_tests/test_worktree_conversion.py b/e2e_tests/test_worktree_conversion.py index 47bb16b..33d5312 100644 --- a/e2e_tests/test_worktree_conversion.py +++ b/e2e_tests/test_worktree_conversion.py @@ -23,7 +23,7 @@ def test_convert(): def test_convert_already_worktree(): - with TempGitRepositoryWorktree() as git_dir: + with TempGitRepositoryWorktree() as (git_dir, _commit): before = checksum_directory(git_dir) cmd = grm(["wt", "convert"], cwd=git_dir) diff --git a/e2e_tests/test_worktree_status.py b/e2e_tests/test_worktree_status.py index 86a92d8..d55fa66 100644 --- a/e2e_tests/test_worktree_status.py +++ b/e2e_tests/test_worktree_status.py @@ -4,7 +4,7 @@ from helpers import * def test_worktree_status(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 @@ -16,7 +16,7 @@ def test_worktree_status(): def test_worktree_status_fail_from_subdir(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 diff --git a/e2e_tests/test_worktrees.py b/e2e_tests/test_worktrees.py index 0e95659..82516bf 100644 --- a/e2e_tests/test_worktrees.py +++ b/e2e_tests/test_worktrees.py @@ -15,7 +15,7 @@ import os.path def test_worktree_add_simple( remote_branch_already_exists, has_config, has_default, has_prefix ): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): if has_config: with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( @@ -75,7 +75,7 @@ def test_worktree_add_simple( def test_worktree_add_into_subdirectory(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "dir/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -93,7 +93,7 @@ def test_worktree_add_into_subdirectory(): def test_worktree_add_into_invalid_subdirectory(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "/dir/test"], cwd=base_dir) assert cmd.returncode == 1 assert "dir" not in os.listdir(base_dir) @@ -111,7 +111,7 @@ def test_worktree_add_into_invalid_subdirectory(): def test_worktree_add_with_tracking( remote_branch_already_exists, has_config, has_default, has_prefix ): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): if has_config: with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( @@ -171,7 +171,7 @@ def test_worktree_add_with_tracking( def test_worktree_add_with_explicit_no_tracking( has_config, has_default, has_prefix, track ): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): if has_config: with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( @@ -218,7 +218,7 @@ def test_worktree_add_with_explicit_no_tracking( def test_worktree_add_with_config( remote_branch_already_exists, has_default, has_prefix ): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): with open(os.path.join(base_dir, "grm.toml"), "w") as f: f.write( f""" @@ -274,7 +274,7 @@ def test_worktree_add_with_config( def test_worktree_delete(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 assert "test" in os.listdir(base_dir) @@ -291,7 +291,7 @@ def test_worktree_delete(): def test_worktree_delete_refusal_no_tracking_branch(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 @@ -307,7 +307,7 @@ def test_worktree_delete_refusal_no_tracking_branch(): def test_worktree_delete_refusal_uncommited_changes_new_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -325,7 +325,7 @@ def test_worktree_delete_refusal_uncommited_changes_new_file(): def test_worktree_delete_refusal_uncommited_changes_changed_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -343,7 +343,7 @@ def test_worktree_delete_refusal_uncommited_changes_changed_file(): def test_worktree_delete_refusal_uncommited_changes_deleted_file(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -363,7 +363,7 @@ def test_worktree_delete_refusal_uncommited_changes_deleted_file(): def test_worktree_delete_refusal_commited_changes(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -383,7 +383,7 @@ def test_worktree_delete_refusal_commited_changes(): def test_worktree_delete_refusal_tracking_branch_mismatch(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 @@ -403,7 +403,7 @@ def test_worktree_delete_refusal_tracking_branch_mismatch(): def test_worktree_delete_force_refusal(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test"], cwd=base_dir) assert cmd.returncode == 0 @@ -413,7 +413,7 @@ def test_worktree_delete_force_refusal(): def test_worktree_add_delete_add(): - with TempGitRepositoryWorktree() as base_dir: + with TempGitRepositoryWorktree() as (base_dir, _commit): cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir) assert cmd.returncode == 0 assert "test" in os.listdir(base_dir)