e2e-tests: Return root commit SHA for worktree repo

This commit is contained in:
2021-12-31 10:54:07 +01:00
parent fcbad5a3eb
commit ef381c7421
6 changed files with 34 additions and 31 deletions

View File

@@ -174,7 +174,10 @@ class TempGitRepositoryWorktree:
git --git-dir .git-main-working-tree config core.bare true 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): def __exit__(self, exc_type, exc_val, exc_tb):
del self.tmpdir del self.tmpdir

View File

@@ -6,7 +6,7 @@ from helpers import *
def test_worktree_clean(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
assert "test" in os.listdir(base_dir) assert "test" in os.listdir(base_dir)
@@ -17,7 +17,7 @@ def test_worktree_clean():
def test_worktree_clean_refusal_no_tracking_branch(): 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) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -81,7 +81,7 @@ def test_worktree_clean_refusal_uncommited_changes_cleand_file():
def test_worktree_clean_refusal_commited_changes(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -99,7 +99,7 @@ def test_worktree_clean_refusal_commited_changes():
def test_worktree_clean_refusal_tracking_branch_mismatch(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -117,7 +117,7 @@ def test_worktree_clean_refusal_tracking_branch_mismatch():
def test_worktree_clean_fail_from_subdir(): 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) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0

View File

@@ -6,7 +6,7 @@ from helpers import *
def test_worktree_never_clean_persistent_branches(): 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: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
""" """
@@ -33,7 +33,7 @@ def test_worktree_never_clean_persistent_branches():
def test_worktree_clean_branch_merged_into_persistent(): 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: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
""" """
@@ -72,7 +72,7 @@ def test_worktree_clean_branch_merged_into_persistent():
def test_worktree_no_clean_unmerged_branch(): 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: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
""" """
@@ -105,7 +105,7 @@ def test_worktree_no_clean_unmerged_branch():
def test_worktree_delete_branch_merged_into_persistent(): 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: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
""" """

View File

@@ -23,7 +23,7 @@ def test_convert():
def test_convert_already_worktree(): def test_convert_already_worktree():
with TempGitRepositoryWorktree() as git_dir: with TempGitRepositoryWorktree() as (git_dir, _commit):
before = checksum_directory(git_dir) before = checksum_directory(git_dir)
cmd = grm(["wt", "convert"], cwd=git_dir) cmd = grm(["wt", "convert"], cwd=git_dir)

View File

@@ -4,7 +4,7 @@ from helpers import *
def test_worktree_status(): def test_worktree_status():
with TempGitRepositoryWorktree() as base_dir: with TempGitRepositoryWorktree() as (base_dir, _commit):
cmd = grm(["wt", "add", "test"], cwd=base_dir) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -16,7 +16,7 @@ def test_worktree_status():
def test_worktree_status_fail_from_subdir(): 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) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0

View File

@@ -15,7 +15,7 @@ import os.path
def test_worktree_add_simple( def test_worktree_add_simple(
remote_branch_already_exists, has_config, has_default, has_prefix remote_branch_already_exists, has_config, has_default, has_prefix
): ):
with TempGitRepositoryWorktree() as base_dir: with TempGitRepositoryWorktree() as (base_dir, _commit):
if has_config: if has_config:
with open(os.path.join(base_dir, "grm.toml"), "w") as f: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
@@ -75,7 +75,7 @@ def test_worktree_add_simple(
def test_worktree_add_into_subdirectory(): 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) cmd = grm(["wt", "add", "dir/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -93,7 +93,7 @@ def test_worktree_add_into_subdirectory():
def test_worktree_add_into_invalid_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) cmd = grm(["wt", "add", "/dir/test"], cwd=base_dir)
assert cmd.returncode == 1 assert cmd.returncode == 1
assert "dir" not in os.listdir(base_dir) 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( def test_worktree_add_with_tracking(
remote_branch_already_exists, has_config, has_default, has_prefix remote_branch_already_exists, has_config, has_default, has_prefix
): ):
with TempGitRepositoryWorktree() as base_dir: with TempGitRepositoryWorktree() as (base_dir, _commit):
if has_config: if has_config:
with open(os.path.join(base_dir, "grm.toml"), "w") as f: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
@@ -171,7 +171,7 @@ def test_worktree_add_with_tracking(
def test_worktree_add_with_explicit_no_tracking( def test_worktree_add_with_explicit_no_tracking(
has_config, has_default, has_prefix, track has_config, has_default, has_prefix, track
): ):
with TempGitRepositoryWorktree() as base_dir: with TempGitRepositoryWorktree() as (base_dir, _commit):
if has_config: if has_config:
with open(os.path.join(base_dir, "grm.toml"), "w") as f: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
@@ -218,7 +218,7 @@ def test_worktree_add_with_explicit_no_tracking(
def test_worktree_add_with_config( def test_worktree_add_with_config(
remote_branch_already_exists, has_default, has_prefix 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: with open(os.path.join(base_dir, "grm.toml"), "w") as f:
f.write( f.write(
f""" f"""
@@ -274,7 +274,7 @@ def test_worktree_add_with_config(
def test_worktree_delete(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
assert "test" in os.listdir(base_dir) assert "test" in os.listdir(base_dir)
@@ -291,7 +291,7 @@ def test_worktree_delete():
def test_worktree_delete_refusal_no_tracking_branch(): 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) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 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(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -363,7 +363,7 @@ def test_worktree_delete_refusal_uncommited_changes_deleted_file():
def test_worktree_delete_refusal_commited_changes(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -383,7 +383,7 @@ def test_worktree_delete_refusal_commited_changes():
def test_worktree_delete_refusal_tracking_branch_mismatch(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -403,7 +403,7 @@ def test_worktree_delete_refusal_tracking_branch_mismatch():
def test_worktree_delete_force_refusal(): 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) cmd = grm(["wt", "add", "test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
@@ -413,7 +413,7 @@ def test_worktree_delete_force_refusal():
def test_worktree_add_delete_add(): 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) cmd = grm(["wt", "add", "test", "--track", "origin/test"], cwd=base_dir)
assert cmd.returncode == 0 assert cmd.returncode == 0
assert "test" in os.listdir(base_dir) assert "test" in os.listdir(base_dir)