summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_integration.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_integration.py')
-rw-r--r--setuptools/tests/test_integration.py65
1 files changed, 7 insertions, 58 deletions
diff --git a/setuptools/tests/test_integration.py b/setuptools/tests/test_integration.py
index 24cef480..b5578312 100644
--- a/setuptools/tests/test_integration.py
+++ b/setuptools/tests/test_integration.py
@@ -6,11 +6,6 @@ Try to install a few packages.
import glob
import os
import sys
-import re
-import subprocess
-import functools
-import tarfile
-import zipfile
import urllib.request
import pytest
@@ -20,6 +15,13 @@ from setuptools.command import easy_install as easy_install_pkg
from setuptools.dist import Distribution
+pytestmark = pytest.mark.skipif(
+ 'platform.python_implementation() == "PyPy" and '
+ 'platform.system() == "Windows"',
+ reason="pypa/setuptools#2496",
+)
+
+
def setup_module(module):
packages = 'stevedore', 'virtualenvwrapper', 'pbr', 'novaclient'
for pkg in packages:
@@ -117,56 +119,3 @@ def test_pyuri(install_context):
# The package data should be installed.
assert os.path.exists(os.path.join(pyuri.location, 'pyuri', 'uri.regex'))
-
-
-build_deps = ['appdirs', 'packaging', 'pyparsing', 'six']
-
-
-@pytest.mark.parametrize("build_dep", build_deps)
-@pytest.mark.skipif(
- sys.version_info < (3, 6), reason='run only on late versions')
-def test_build_deps_on_distutils(request, tmpdir_factory, build_dep):
- """
- All setuptools build dependencies must build without
- setuptools.
- """
- if 'pyparsing' in build_dep:
- pytest.xfail(reason="Project imports setuptools unconditionally")
- build_target = tmpdir_factory.mktemp('source')
- build_dir = download_and_extract(request, build_dep, build_target)
- install_target = tmpdir_factory.mktemp('target')
- output = install(build_dir, install_target)
- for line in output.splitlines():
- match = re.search('Unknown distribution option: (.*)', line)
- allowed_unknowns = [
- 'test_suite',
- 'tests_require',
- 'python_requires',
- 'install_requires',
- 'long_description_content_type',
- ]
- assert not match or match.group(1).strip('"\'') in allowed_unknowns
-
-
-def install(pkg_dir, install_dir):
- with open(os.path.join(pkg_dir, 'setuptools.py'), 'w') as breaker:
- breaker.write('raise ImportError()')
- cmd = [sys.executable, 'setup.py', 'install', '--prefix', str(install_dir)]
- env = dict(os.environ, PYTHONPATH=str(pkg_dir))
- output = subprocess.check_output(
- cmd, cwd=pkg_dir, env=env, stderr=subprocess.STDOUT)
- return output.decode('utf-8')
-
-
-def download_and_extract(request, req, target):
- cmd = [
- sys.executable, '-m', 'pip', 'download', '--no-deps',
- '--no-binary', ':all:', req,
- ]
- output = subprocess.check_output(cmd, encoding='utf-8')
- filename = re.search('Saved (.*)', output).group(1)
- request.addfinalizer(functools.partial(os.remove, filename))
- opener = zipfile.ZipFile if filename.endswith('.zip') else tarfile.open
- with opener(filename) as archive:
- archive.extractall(target)
- return os.path.join(target, os.listdir(target)[0])