mirror of https://github.com/pypa/pip
Change get_revision_sha() to return is_branch.
This commit is contained in:
parent
8d6f7b56fa
commit
b11bf9e978
|
@ -105,8 +105,8 @@ class Git(VersionControl):
|
|||
|
||||
def get_revision_sha(self, dest, rev):
|
||||
"""
|
||||
Return a commit hash for the given revision if it names a remote
|
||||
branch or tag. Otherwise, return None.
|
||||
Return (sha_or_none, is_branch), where sha_or_none is a commit hash
|
||||
if the revision names a remote branch or tag, otherwise None.
|
||||
|
||||
Args:
|
||||
dest: the repository directory.
|
||||
|
@ -129,7 +129,13 @@ class Git(VersionControl):
|
|||
branch_ref = 'refs/remotes/origin/{}'.format(rev)
|
||||
tag_ref = 'refs/tags/{}'.format(rev)
|
||||
|
||||
return refs.get(branch_ref) or refs.get(tag_ref)
|
||||
sha = refs.get(branch_ref)
|
||||
if sha is not None:
|
||||
return (sha, True)
|
||||
|
||||
sha = refs.get(tag_ref)
|
||||
|
||||
return (sha, False)
|
||||
|
||||
def resolve_revision(self, dest, url, rev_options):
|
||||
"""
|
||||
|
@ -140,7 +146,7 @@ class Git(VersionControl):
|
|||
rev_options: a RevOptions object.
|
||||
"""
|
||||
rev = rev_options.arg_rev
|
||||
sha = self.get_revision_sha(dest, rev)
|
||||
sha, is_branch = self.get_revision_sha(dest, rev)
|
||||
|
||||
if sha is not None:
|
||||
return rev_options.make_new(sha)
|
||||
|
|
|
@ -37,9 +37,9 @@ def add_commits(script, dest, count):
|
|||
return shas
|
||||
|
||||
|
||||
def check_rev(repo_dir, rev, expected_sha):
|
||||
def check_rev(repo_dir, rev, expected):
|
||||
git = Git()
|
||||
assert git.get_revision_sha(repo_dir, rev) == expected_sha
|
||||
assert git.get_revision_sha(repo_dir, rev) == expected
|
||||
|
||||
|
||||
def test_git_dir_ignored():
|
||||
|
@ -123,9 +123,9 @@ def test_get_revision_sha(script):
|
|||
script.run('git', 'tag', 'aaa/v1.0', head_sha, cwd=repo_dir)
|
||||
script.run('git', 'tag', 'zzz/v1.0', head_sha, cwd=repo_dir)
|
||||
|
||||
check_rev(repo_dir, 'v1.0', tag_sha)
|
||||
check_rev(repo_dir, 'v2.0', tag_sha)
|
||||
check_rev(repo_dir, 'origin-branch', origin_sha)
|
||||
check_rev(repo_dir, 'v1.0', (tag_sha, False))
|
||||
check_rev(repo_dir, 'v2.0', (tag_sha, False))
|
||||
check_rev(repo_dir, 'origin-branch', (origin_sha, True))
|
||||
|
||||
ignored_names = [
|
||||
# Local branches should be ignored.
|
||||
|
@ -143,7 +143,7 @@ def test_get_revision_sha(script):
|
|||
'does-not-exist',
|
||||
]
|
||||
for name in ignored_names:
|
||||
check_rev(repo_dir, name, None)
|
||||
check_rev(repo_dir, name, (None, False))
|
||||
|
||||
|
||||
@pytest.mark.network
|
||||
|
|
|
@ -109,7 +109,7 @@ def test_git_get_src_requirements(git, dist):
|
|||
|
||||
@patch('pip._internal.vcs.git.Git.get_revision_sha')
|
||||
def test_git_resolve_revision_rev_exists(get_sha_mock):
|
||||
get_sha_mock.return_value = '123456'
|
||||
get_sha_mock.return_value = ('123456', False)
|
||||
git = Git()
|
||||
rev_options = git.make_rev_options('develop')
|
||||
|
||||
|
@ -120,7 +120,7 @@ def test_git_resolve_revision_rev_exists(get_sha_mock):
|
|||
|
||||
@patch('pip._internal.vcs.git.Git.get_revision_sha')
|
||||
def test_git_resolve_revision_rev_not_found(get_sha_mock):
|
||||
get_sha_mock.return_value = None
|
||||
get_sha_mock.return_value = (None, False)
|
||||
git = Git()
|
||||
rev_options = git.make_rev_options('develop')
|
||||
|
||||
|
@ -131,7 +131,7 @@ def test_git_resolve_revision_rev_not_found(get_sha_mock):
|
|||
|
||||
@patch('pip._internal.vcs.git.Git.get_revision_sha')
|
||||
def test_git_resolve_revision_not_found_warning(get_sha_mock, caplog):
|
||||
get_sha_mock.return_value = None
|
||||
get_sha_mock.return_value = (None, False)
|
||||
git = Git()
|
||||
|
||||
url = 'git+https://git.example.com'
|
||||
|
|
Loading…
Reference in New Issue