diff options
author | Benoit Pierre <benoit.pierre@gmail.com> | 2017-07-21 16:39:15 +0200 |
---|---|---|
committer | Benoit Pierre <benoit.pierre@gmail.com> | 2017-07-26 20:37:58 +0200 |
commit | 75e88f63cc0308f7933e936b171f9cba2d04e7ad (patch) | |
tree | 6e631c3055a969b5fed88be6229bb01434381488 /setuptools/tests/test_virtualenv.py | |
parent | 0c86c6a290c6ddce7732228820482a600f7520ca (diff) | |
download | python-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.py | 66 |
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() |