diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2018-12-14 15:22:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-14 15:22:08 -0500 |
commit | 361013fe78322b28a1c18f4279d8777e64ac2b58 (patch) | |
tree | d0dc81b53ecfbc840e72e7da03976a256026d0d1 | |
parent | 1c1c9152abcb8b1b6a13f1cfb4744f8d73016876 (diff) | |
parent | b431aef3a682a5e22d37568446b9cca1b14a2bf5 (diff) | |
download | external_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.rst | 1 | ||||
-rw-r--r-- | setuptools/tests/test_packageindex.py | 39 |
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): |