82 lines
2.4 KiB
Python
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()
|