Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/1544.change.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added tests for PackageIndex.download (for git URLs).
39 changes: 39 additions & 0 deletions setuptools/tests/test_packageindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

from setuptools.extern import six
from setuptools.extern.six.moves import urllib, http_client
import mock

import pkg_resources
import setuptools.package_index
Expand Down Expand Up @@ -223,6 +224,44 @@ def test_egg_fragment(self):
assert dists[0].version == ''
assert dists[1].version == vc

def test_download_git_with_rev(self, tmpdir):
url = 'git+https://github.example/group/project@master#egg=foo'
index = setuptools.package_index.PackageIndex()

with mock.patch("os.system") as os_system_mock:
result = index.download(url, str(tmpdir))

os_system_mock.assert_called()

expected_dir = str(tmpdir / 'project@master')
expected = (
'git clone --quiet '
'https://github.example/group/project {expected_dir}'
).format(**locals())
first_call_args = os_system_mock.call_args_list[0][0]
assert first_call_args == (expected,)

tmpl = '(cd {expected_dir} && git checkout --quiet master)'
expected = tmpl.format(**locals())
assert os_system_mock.call_args_list[1][0] == (expected,)
assert result == expected_dir

def test_download_git_no_rev(self, tmpdir):
url = 'git+https://github.example/group/project#egg=foo'
index = setuptools.package_index.PackageIndex()

with mock.patch("os.system") as os_system_mock:
result = index.download(url, str(tmpdir))

os_system_mock.assert_called()

expected_dir = str(tmpdir / 'project')
expected = (
'git clone --quiet '
'https://github.example/group/project {expected_dir}'
).format(**locals())
os_system_mock.assert_called_once_with(expected)


class TestContentCheckers:
def test_md5(self):
Expand Down