summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_virtualenv.py
diff options
context:
space:
mode:
authorBenoit Pierre <benoit.pierre@gmail.com>2017-07-21 16:39:15 +0200
committerBenoit Pierre <benoit.pierre@gmail.com>2017-07-26 20:37:58 +0200
commit75e88f63cc0308f7933e936b171f9cba2d04e7ad (patch)
tree6e631c3055a969b5fed88be6229bb01434381488 /setuptools/tests/test_virtualenv.py
parent0c86c6a290c6ddce7732228820482a600f7520ca (diff)
downloadpython-setuptools-git-75e88f63cc0308f7933e936b171f9cba2d04e7ad.tar.gz
fix `test` command handling of `extras_require`
Also install platform specific requirements in `extras_require`.
Diffstat (limited to 'setuptools/tests/test_virtualenv.py')
-rw-r--r--setuptools/tests/test_virtualenv.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py
index a7f485a4..17b8793c 100644
--- a/setuptools/tests/test_virtualenv.py
+++ b/setuptools/tests/test_virtualenv.py
@@ -6,6 +6,9 @@ from pytest_fixture_config import yield_requires_config
import pytest_virtualenv
+from .textwrap import DALS
+from .test_easy_install import make_nspkg_sdist
+
@yield_requires_config(pytest_virtualenv.CONFIG, ['virtualenv_executable'])
@yield_fixture(scope='function')
@@ -48,3 +51,66 @@ def test_pip_upgrade_from_source(virtualenv):
virtualenv.run('pip install ' + wheel)
# And finally try to upgrade from source.
virtualenv.run('pip install --no-cache-dir --upgrade ' + sdist)
+
+def test_test_command_install_requirements(bare_virtualenv, tmpdir):
+ """
+ Check the test command will install all required dependencies.
+ """
+ bare_virtualenv.run(' && '.join((
+ 'cd {source}',
+ 'python setup.py develop',
+ )).format(source=SOURCE_DIR))
+ def sdist(distname, version):
+ dist_path = tmpdir.join('%s-%s.tar.gz' % (distname, version))
+ make_nspkg_sdist(str(dist_path), distname, version)
+ return dist_path
+ dependency_links = [
+ str(dist_path)
+ for dist_path in (
+ sdist('foobar', '2.4'),
+ sdist('bits', '4.2'),
+ sdist('bobs', '6.0'),
+ sdist('pieces', '0.6'),
+ )
+ ]
+ with tmpdir.join('setup.py').open('w') as fp:
+ fp.write(DALS(
+ '''
+ from setuptools import setup
+
+ setup(
+ dependency_links={dependency_links!r},
+ install_requires=[
+ 'barbazquux1; sys_platform in ""',
+ 'foobar==2.4',
+ ],
+ setup_requires='bits==4.2',
+ tests_require="""
+ bobs==6.0
+ """,
+ extras_require={{
+ 'test': ['barbazquux2'],
+ ':"" in sys_platform': 'pieces==0.6',
+ ':python_version > "1"': """
+ pieces
+ foobar
+ """,
+ }}
+ )
+ '''.format(dependency_links=dependency_links)))
+ with tmpdir.join('test.py').open('w') as fp:
+ fp.write(DALS(
+ '''
+ import foobar
+ import bits
+ import bobs
+ import pieces
+
+ open('success', 'w').close()
+ '''))
+ # Run test command for test package.
+ bare_virtualenv.run(' && '.join((
+ 'cd {tmpdir}',
+ 'python setup.py test -s test',
+ )).format(tmpdir=tmpdir))
+ assert tmpdir.join('success').check()