Commit b224605a authored by Paul Ganssle's avatar Paul Ganssle

Automatically skip tests that require network

parent 82db4c62
......@@ -52,24 +52,55 @@ def test_clean_env_install(bare_virtualenv):
)).format(source=SOURCE_DIR))
@pytest.mark.parametrize('pip_version', (
'pip==9.0.3',
'pip==10.0.1',
'pip==18.1',
'pip==19.0.1',
'https://github.com/pypa/pip/archive/master.zip',
))
def test_pip_upgrade_from_source(virtualenv, pip_version):
def _get_pip_versions():
# This fixture will attempt to detect if tests are being run without
# network connectivity and if so skip some tests
network = True
if not os.environ.get('NETWORK_REQUIRED', False): # pragma: nocover
try:
from urllib.request import urlopen
from urllib.error import URLError
except ImportError:
from urllib2 import urlopen, URLError # Python 2.7 compat
try:
urlopen('https://pypi.org', timeout=1)
except URLError:
# No network, disable most of these tests
network = False
network_versions = [
'pip==9.0.3',
'pip==10.0.1',
'pip==18.1',
'pip==19.0.1',
'https://github.com/pypa/pip/archive/master.zip',
]
versions = [None] + [
pytest.param(v, **({} if network else {'marks': pytest.mark.skip}))
for v in network_versions
]
return versions
@pytest.mark.parametrize('pip_version', _get_pip_versions())
def test_pip_upgrade_from_source(pip_version, virtualenv):
"""
Check pip can upgrade setuptools from source.
"""
# Install pip/wheel, and remove setuptools (as it
# should not be needed for bootstraping from source)
if pip_version is None:
upgrade_pip = ()
else:
upgrade_pip = ('python -m pip install -U {pip_version} --retries=1',)
virtualenv.run(' && '.join((
'pip uninstall -y setuptools',
'pip install -U wheel',
'python -m pip install {pip_version}',
)).format(pip_version=pip_version))
) + upgrade_pip).format(pip_version=pip_version))
dist_dir = virtualenv.workspace
# Generate source distribution / wheel.
virtualenv.run(' && '.join((
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment