Commit 7c2df64c authored by Benoit Pierre's avatar Benoit Pierre

fix possible error when finalizing `install_requires`

parent 95386da9
......@@ -369,11 +369,12 @@ class Distribution(Distribution_parse_config_files, _Distribution):
Move requirements in `install_requires` that
are using environment markers to `extras_require`.
"""
if not self.install_requires:
if not getattr(self, 'install_requires', None):
return
extras_require = getattr(self, 'extras_require', None)
extras_require = defaultdict(list, (
(k, list(pkg_resources.parse_requirements(v)))
for k, v in (self.extras_require or {}).items()
for k, v in (extras_require or {}).items()
))
install_requires = []
for r in pkg_resources.parse_requirements(self.install_requires):
......
import glob
import os
from pytest import yield_fixture
......@@ -29,3 +30,21 @@ def test_clean_env_install(bare_virtualenv):
'cd {source}',
'python setup.py install',
)).format(source=SOURCE_DIR))
def test_pip_upgrade_from_source(virtualenv):
"""
Check pip can upgrade setuptools from source.
"""
dist_dir = virtualenv.workspace
# Generate source distribution / wheel.
virtualenv.run(' && '.join((
'cd {source}',
'python setup.py -q sdist -d {dist}',
'python setup.py -q bdist_wheel -d {dist}',
)).format(source=SOURCE_DIR, dist=dist_dir))
sdist = glob.glob(os.path.join(dist_dir, '*.zip'))[0]
wheel = glob.glob(os.path.join(dist_dir, '*.whl'))[0]
# Then update from wheel.
virtualenv.run('pip install ' + wheel)
# And finally try to upgrade from source.
virtualenv.run('pip install --no-cache-dir --upgrade ' + sdist)
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