pip/tests/unit/test_download.py

49 lines
1.5 KiB
Python
Raw Normal View History

2013-05-28 23:58:08 +02:00
import os
from shutil import rmtree
from tempfile import mkdtemp
import pip
from mock import patch
from pip.download import (_get_response_from_url as _get_response_from_url_original,
path_to_url2, unpack_http_url, URLOpener)
from pip.index import Link
from tests.lib import tests_data
def test_unpack_http_url_with_urllib_response_without_content_type():
"""
It should download and unpack files even if no Content-Type header exists
"""
def _get_response_from_url_mock(*args, **kw):
resp = _get_response_from_url_original(*args, **kw)
del resp.info()['content-type']
return resp
with patch('pip.download._get_response_from_url', _get_response_from_url_mock) as mocked:
uri = path_to_url2(os.path.join(tests_data, 'packages', 'simple-1.0.tar.gz'))
link = Link(uri)
temp_dir = mkdtemp()
try:
unpack_http_url(link, temp_dir, download_cache=None, download_dir=None)
assert set(os.listdir(temp_dir)) == set(['PKG-INFO', 'setup.cfg', 'setup.py', 'simple', 'simple.egg-info'])
finally:
rmtree(temp_dir)
def test_user_agent():
opener = URLOpener().get_opener()
user_agent = [x for x in opener.addheaders if x[0].lower() == "user-agent"][0]
assert user_agent[1].startswith("pip/%s" % pip.__version__)
2013-05-30 23:03:04 +02:00
def test_bad_cache_checksum():
"""
If cached download has bad checksum, re-download.
"""
def test_bad_already_downloaded_checksum():
"""
If already-downloaded file has bad checksum, re-download.
"""