aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Fernandez <xavier.fernandez@polyconseil.fr>2016-07-11 11:30:11 +0200
committerXavier Fernandez <xavier.fernandez@polyconseil.fr>2016-07-14 09:59:51 +0200
commit020771f5e631741de31255283aa81adc05a26a9d (patch)
tree86bb7308b64137445b0a48335db0f174b1c53a52
parentd9a251b704b87e9a0e5090213e7799c468c4bbf5 (diff)
downloadexternal_python_setuptools-020771f5e631741de31255283aa81adc05a26a9d.tar.gz
external_python_setuptools-020771f5e631741de31255283aa81adc05a26a9d.tar.bz2
external_python_setuptools-020771f5e631741de31255283aa81adc05a26a9d.zip
Add basic tests and docs for python_requires
-rw-r--r--docs/setuptools.txt4
-rw-r--r--setuptools/tests/test_egg_info.py24
2 files changed, 28 insertions, 0 deletions
diff --git a/docs/setuptools.txt b/docs/setuptools.txt
index 807a2722..0f955663 100644
--- a/docs/setuptools.txt
+++ b/docs/setuptools.txt
@@ -302,6 +302,10 @@ unless you need the associated ``setuptools`` feature.
installed to support those features. See the section below on `Declaring
Dependencies`_ for details and examples of the format of this argument.
+``python_requires``
+ A string corresponding to a version specifier (as defined in PEP 440) for
+ the Python version, used to specify the Requires-Python defined in PEP 345.
+
``setup_requires``
A string or list of strings specifying what other distributions need to
be present in order for the *setup script* to run. ``setuptools`` will
diff --git a/setuptools/tests/test_egg_info.py b/setuptools/tests/test_egg_info.py
index afbda2cc..d758ff90 100644
--- a/setuptools/tests/test_egg_info.py
+++ b/setuptools/tests/test_egg_info.py
@@ -210,6 +210,30 @@ class TestEggInfo(object):
self._run_install_command(tmpdir_cwd, env)
assert glob.glob(os.path.join(env.paths['lib'], 'barbazquux*')) == []
+ def test_python_requires_egg_info(self, tmpdir_cwd, env):
+ self._setup_script_with_requires(
+ """python_requires='>=2.7.12',""")
+ environ = os.environ.copy().update(
+ HOME=env.paths['home'],
+ )
+ code, data = environment.run_setup_py(
+ cmd=['egg_info'],
+ pypath=os.pathsep.join([env.paths['lib'], str(tmpdir_cwd)]),
+ data_stream=1,
+ env=environ,
+ )
+ egg_info_dir = os.path.join('.', 'foo.egg-info')
+ pkginfo = os.path.join(egg_info_dir, 'PKG-INFO')
+ assert 'Requires-Python: >=2.7.12' in open(pkginfo).read().split('\n')
+
+ def test_python_requires_install(self, tmpdir_cwd, env):
+ self._setup_script_with_requires(
+ """python_requires='>=1.2.3',""")
+ self._run_install_command(tmpdir_cwd, env)
+ egg_info_dir = self._find_egg_info_files(env.paths['lib']).base
+ pkginfo = os.path.join(egg_info_dir, 'PKG-INFO')
+ assert 'Requires-Python: >=1.2.3' in open(pkginfo).read().split('\n')
+
def _run_install_command(self, tmpdir_cwd, env, cmd=None, output=None):
environ = os.environ.copy().update(
HOME=env.paths['home'],