Files
2026-07-13 12:47:58 +08:00

82 lines
2.4 KiB
Python

import pytest
from e2b.exceptions import GitUpstreamException
@pytest.mark.skip_debug()
def test_push_updates_remote(git_sandbox, git_repo_with_commit, git_daemon):
repo_path = git_repo_with_commit
remote_url = git_daemon["remote_url"]
git_sandbox.git.remote_add(repo_path, "origin", remote_url)
git_sandbox.git.push(
repo_path,
remote="origin",
branch="main",
set_upstream=True,
)
message = git_sandbox.commands.run(
f'git --git-dir="{git_daemon["remote_path"]}" log -1 --pretty=%B'
).stdout.strip()
assert message == "Initial commit"
@pytest.mark.skip_debug()
def test_push_without_upstream_warns(git_sandbox, git_repo_with_commit, git_daemon):
repo_path = git_repo_with_commit
remote_url = git_daemon["remote_url"]
git_sandbox.git.remote_add(repo_path, "origin", remote_url)
with pytest.raises(GitUpstreamException) as exc:
git_sandbox.git.push(repo_path, set_upstream=False)
assert "no upstream branch is configured" in str(exc.value).lower()
@pytest.mark.skip_debug()
def test_pull_updates_clone(
git_sandbox, git_repo_with_commit, git_daemon, git_base_dir, git_author
):
repo_path = git_repo_with_commit
remote_url = git_daemon["remote_url"]
clone_path = f"{git_base_dir}/clone"
git_sandbox.git.remote_add(repo_path, "origin", remote_url)
git_sandbox.git.push(
repo_path,
remote="origin",
branch="main",
set_upstream=True,
)
git_sandbox.git.clone(remote_url, clone_path)
git_sandbox.files.write(f"{repo_path}/README.md", "hello\nmore\n")
author_name, author_email = git_author
git_sandbox.git.add(repo_path, all=True)
git_sandbox.git.commit(
repo_path,
message="Update README",
author_name=author_name,
author_email=author_email,
)
git_sandbox.git.push(repo_path)
git_sandbox.git.pull(clone_path)
contents = git_sandbox.files.read(f"{clone_path}/README.md")
assert "more" in contents
@pytest.mark.skip_debug()
def test_pull_without_upstream_warns(git_sandbox, git_repo_with_commit, git_daemon):
repo_path = git_repo_with_commit
remote_url = git_daemon["remote_url"]
git_sandbox.git.remote_add(repo_path, "origin", remote_url)
with pytest.raises(GitUpstreamException) as exc:
git_sandbox.git.pull(repo_path)
assert "no upstream branch is configured" in str(exc.value).lower()