aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2018-12-14 15:22:08 -0500
committerGitHub <noreply@github.com>2018-12-14 15:22:08 -0500
commit361013fe78322b28a1c18f4279d8777e64ac2b58 (patch)
treed0dc81b53ecfbc840e72e7da03976a256026d0d1
parent1c1c9152abcb8b1b6a13f1cfb4744f8d73016876 (diff)
parentb431aef3a682a5e22d37568446b9cca1b14a2bf5 (diff)
downloadexternal_python_setuptools-361013fe78322b28a1c18f4279d8777e64ac2b58.tar.gz
external_python_setuptools-361013fe78322b28a1c18f4279d8777e64ac2b58.tar.bz2
external_python_setuptools-361013fe78322b28a1c18f4279d8777e64ac2b58.zip
Merge pull request #1544 from kanikas3/added-unittest-download-git
added unittest for _download_git
-rw-r--r--changelog.d/1544.change.rst1
-rw-r--r--setuptools/tests/test_packageindex.py39
2 files changed, 40 insertions, 0 deletions
diff --git a/changelog.d/1544.change.rst b/changelog.d/1544.change.rst
new file mode 100644
index 00000000..748b64e1
--- /dev/null
+++ b/changelog.d/1544.change.rst
@@ -0,0 +1 @@
+Added tests for PackageIndex.download (for git URLs).
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
index 63b92946..1f6bc797 100644
--- a/setuptools/tests/test_packageindex.py
+++ b/setuptools/tests/test_packageindex.py
@@ -6,6 +6,7 @@ import distutils.errors
from setuptools.extern import six
from setuptools.extern.six.moves import urllib, http_client
+import mock
import pkg_resources
import setuptools.package_index
@@ -223,6 +224,44 @@ class TestPackageIndex:
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):