diff options
author | Bernat Gabor <gaborjbernat@gmail.com> | 2018-09-14 18:09:24 +0100 |
---|---|---|
committer | Bernat Gabor <gaborjbernat@gmail.com> | 2018-09-16 22:10:48 +0100 |
commit | cd0278debfbd8d99d28f132d6c1fa67843d84170 (patch) | |
tree | a6f06cffe9e7e10de26fad59f757818529927d3f /setuptools | |
parent | d39791489ce78d16e0238f60c429f0be08f4a994 (diff) | |
download | external_python_setuptools-cd0278debfbd8d99d28f132d6c1fa67843d84170.tar.gz external_python_setuptools-cd0278debfbd8d99d28f132d6c1fa67843d84170.tar.bz2 external_python_setuptools-cd0278debfbd8d99d28f132d6c1fa67843d84170.zip |
Add tests exposing the issues with sdist_directory not being --dist-dir
Diffstat (limited to 'setuptools')
-rw-r--r-- | setuptools/tests/test_build_meta.py | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/setuptools/tests/test_build_meta.py b/setuptools/tests/test_build_meta.py index f1d517bb..7b195e2c 100644 --- a/setuptools/tests/test_build_meta.py +++ b/setuptools/tests/test_build_meta.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import os +import shutil import pytest @@ -9,7 +10,6 @@ from .textwrap import DALS __metaclass__ = type - futures = pytest.importorskip('concurrent.futures') importlib = pytest.importorskip('importlib') @@ -23,12 +23,14 @@ class BuildBackendBase: class BuildBackend(BuildBackendBase): """PEP 517 Build Backend""" + def __init__(self, *args, **kwargs): super(BuildBackend, self).__init__(*args, **kwargs) self.pool = futures.ProcessPoolExecutor() def __getattr__(self, name): """Handles aribrary function invocations on the build backend.""" + def method(*args, **kw): root = os.path.abspath(self.cwd) caller = BuildBackendCaller(root, self.env, self.backend_name) @@ -51,6 +53,7 @@ defns = [ 'setup.py': DALS(""" __import__('setuptools').setup( name='foo', + version='0.0.0', py_modules=['hello'], setup_requires=['six'], ) @@ -65,6 +68,7 @@ defns = [ assert __name__ == '__main__' __import__('setuptools').setup( name='foo', + version='0.0.0', py_modules=['hello'], setup_requires=['six'], ) @@ -82,6 +86,7 @@ defns = [ assert variable __import__('setuptools').setup( name='foo', + version='0.0.0', py_modules=['hello'], setup_requires=['six'], ) @@ -146,3 +151,32 @@ def test_prepare_metadata_for_build_wheel_with_str(build_backend): dist_info = build_backend.prepare_metadata_for_build_wheel(dist_dir) assert os.path.isfile(os.path.join(dist_dir, dist_info, 'METADATA')) + + +def test_build_sdist_explicit_dist(build_backend): + # explicitly specifying the dist folder should work + # the folder sdist_directory and the ``--dist-dir`` can be the same + dist_dir = os.path.abspath('dist') + sdist_name = build_backend.build_sdist(dist_dir) + assert os.path.isfile(os.path.join(dist_dir, sdist_name)) + + +def test_build_sdist_version_change(build_backend): + sdist_into_directory = os.path.abspath("out_sdist") + os.makedirs(sdist_into_directory) + + sdist_name = build_backend.build_sdist(sdist_into_directory) + assert os.path.isfile(os.path.join(sdist_into_directory, sdist_name)) + + # if the setup.py changes subsequent call of the build meta should still succeed, given the + # sdist_directory the frontend specifies is empty + with open(os.path.abspath("setup.py"), 'rt') as file_handler: + content = file_handler.read() + with open(os.path.abspath("setup.py"), 'wt') as file_handler: + file_handler.write(content.replace("version='0.0.0'", "version='0.0.1'")) + + shutil.rmtree(sdist_into_directory) + os.makedirs(sdist_into_directory) + + sdist_name = build_backend.build_sdist("out_sdist") + assert os.path.isfile(os.path.join(os.path.abspath("out_sdist"), sdist_name)) |