summaryrefslogtreecommitdiff
path: root/setuptools
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/tests/__init__.py4
-rw-r--r--setuptools/tests/test_develop.py2
-rw-r--r--setuptools/tests/test_easy_install.py2
-rw-r--r--setuptools/tests/test_packageindex.py74
-rw-r--r--setuptools/tests/test_test.py4
-rw-r--r--setuptools/tests/test_virtualenv.py20
6 files changed, 36 insertions, 70 deletions
diff --git a/setuptools/tests/__init__.py b/setuptools/tests/__init__.py
index 9c77b51f..6377d785 100644
--- a/setuptools/tests/__init__.py
+++ b/setuptools/tests/__init__.py
@@ -6,7 +6,7 @@ from setuptools.extern.six import PY2, PY3
__all__ = [
- 'fail_on_ascii', 'py2_only', 'py3_only'
+ 'fail_on_ascii', 'py2_only', 'py3_only', 'ack_2to3'
]
@@ -16,3 +16,5 @@ fail_on_ascii = pytest.mark.xfail(is_ascii, reason="Test fails in this locale")
py2_only = pytest.mark.skipif(not PY2, reason="Test runs on Python 2 only")
py3_only = pytest.mark.skipif(not PY3, reason="Test runs on Python 3 only")
+
+ack_2to3 = pytest.mark.filterwarnings('ignore:2to3 support is deprecated')
diff --git a/setuptools/tests/test_develop.py b/setuptools/tests/test_develop.py
index 792975fd..bb89a865 100644
--- a/setuptools/tests/test_develop.py
+++ b/setuptools/tests/test_develop.py
@@ -17,6 +17,7 @@ import pytest
from setuptools.command.develop import develop
from setuptools.dist import Distribution
+from setuptools.tests import ack_2to3
from . import contexts
from . import namespaces
@@ -65,6 +66,7 @@ class TestDevelop:
@pytest.mark.skipif(
in_virtualenv or in_venv,
reason="Cannot run when invoked in a virtualenv or venv")
+ @ack_2to3
def test_2to3_user_mode(self, test_env):
settings = dict(
name='foo',
diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py
index 534392b9..3044cbd0 100644
--- a/setuptools/tests/test_easy_install.py
+++ b/setuptools/tests/test_easy_install.py
@@ -738,7 +738,7 @@ class TestSetupRequires:
dep_2_0_url=dep_2_0_url,
dep_2_0_sdist=dep_2_0_sdist,
dep_2_0_python_requires=dep_2_0_python_requires,
- ), 'utf-8')
+ ), 'utf-8')
index_url = path_to_url(str(index))
with contexts.save_pkg_resources_state():
test_pkg = create_setup_requires_package(
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
index 60d968fd..29aace13 100644
--- a/setuptools/tests/test_packageindex.py
+++ b/setuptools/tests/test_packageindex.py
@@ -3,15 +3,14 @@ from __future__ import absolute_import
import sys
import os
import distutils.errors
+import platform
from setuptools.extern import six
from setuptools.extern.six.moves import urllib, http_client
import mock
import pytest
-import pkg_resources
import setuptools.package_index
-from setuptools.tests.server import IndexServer
from .textwrap import DALS
@@ -114,43 +113,6 @@ class TestPackageIndex:
url = 'file:///tmp/test_package_index'
assert index.url_ok(url, True)
- def test_links_priority(self):
- """
- Download links from the pypi simple index should be used before
- external download links.
- https://bitbucket.org/tarek/distribute/issue/163
-
- Usecase :
- - someone uploads a package on pypi, a md5 is generated
- - someone manually copies this link (with the md5 in the url) onto an
- external page accessible from the package page.
- - someone reuploads the package (with a different md5)
- - while easy_installing, an MD5 error occurs because the external link
- is used
- -> Setuptools should use the link from pypi, not the external one.
- """
- if sys.platform.startswith('java'):
- # Skip this test on jython because binding to :0 fails
- return
-
- # start an index server
- server = IndexServer()
- server.start()
- index_url = server.base_url() + 'test_links_priority/simple/'
-
- # scan a test index
- pi = setuptools.package_index.PackageIndex(index_url)
- requirement = pkg_resources.Requirement.parse('foobar')
- pi.find_packages(requirement)
- server.stop()
-
- # the distribution has been found
- assert 'foobar' in pi
- # we have only one link, because links are compared without md5
- assert len(pi['foobar']) == 1
- # the link should be from the index
- assert 'correct_md5' in pi['foobar'][0].location
-
def test_parse_bdist_wininst(self):
parse = setuptools.package_index.parse_bdist_wininst
@@ -221,11 +183,11 @@ class TestPackageIndex:
('+ubuntu_0', '+ubuntu.0'),
]
versions = [
- [''.join([e, r, p, l]) for l in ll]
+ [''.join([e, r, p, loc]) for loc in locs]
for e in epoch
for r in releases
for p in sum([pre, post, dev], [''])
- for ll in local]
+ for locs in local]
for v, vc in versions:
dists = list(setuptools.package_index.distros_for_url(
'http://example.com/example.zip#egg=example-' + v))
@@ -322,17 +284,27 @@ class TestContentCheckers:
assert rep == 'My message about md5'
+@pytest.fixture
+def temp_home(tmpdir, monkeypatch):
+ key = (
+ 'USERPROFILE'
+ if platform.system() == 'Windows' and sys.version_info > (3, 8) else
+ 'HOME'
+ )
+
+ monkeypatch.setitem(os.environ, key, str(tmpdir))
+ return tmpdir
+
+
class TestPyPIConfig:
- def test_percent_in_password(self, tmpdir, monkeypatch):
- monkeypatch.setitem(os.environ, 'HOME', str(tmpdir))
- pypirc = tmpdir / '.pypirc'
- with pypirc.open('w') as strm:
- strm.write(DALS("""
- [pypi]
- repository=https://pypi.org
- username=jaraco
- password=pity%
- """))
+ def test_percent_in_password(self, temp_home):
+ pypirc = temp_home / '.pypirc'
+ pypirc.write(DALS("""
+ [pypi]
+ repository=https://pypi.org
+ username=jaraco
+ password=pity%
+ """))
cfg = setuptools.package_index.PyPIConfig()
cred = cfg.creds_by_repository['https://pypi.org']
assert cred.username == 'jaraco'
diff --git a/setuptools/tests/test_test.py b/setuptools/tests/test_test.py
index 0f77d8ff..892fd120 100644
--- a/setuptools/tests/test_test.py
+++ b/setuptools/tests/test_test.py
@@ -10,6 +10,7 @@ import pytest
from setuptools.command.test import test
from setuptools.dist import Distribution
+from setuptools.tests import ack_2to3
from .textwrap import DALS
@@ -73,9 +74,6 @@ def quiet_log():
log.set_verbosity(0)
-ack_2to3 = pytest.mark.filterwarnings('ignore:2to3 support is deprecated')
-
-
@pytest.mark.usefixtures('sample_test', 'quiet_log')
@ack_2to3
def test_test(capfd):
diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py
index 6549a6c0..555273ae 100644
--- a/setuptools/tests/test_virtualenv.py
+++ b/setuptools/tests/test_virtualenv.py
@@ -57,10 +57,7 @@ def test_clean_env_install(bare_virtualenv):
"""
Check setuptools can be installed in a clean environment.
"""
- bare_virtualenv.run(' && '.join((
- 'cd {source}',
- 'python setup.py install',
- )).format(source=SOURCE_DIR))
+ bare_virtualenv.run(['python', 'setup.py', 'install'], cd=SOURCE_DIR)
def _get_pip_versions():
@@ -115,10 +112,9 @@ def test_pip_upgrade_from_source(pip_version, virtualenv):
dist_dir = virtualenv.workspace
# Generate source distribution / wheel.
virtualenv.run(' && '.join((
- 'cd {source}',
'python setup.py -q sdist -d {dist}',
'python setup.py -q bdist_wheel -d {dist}',
- )).format(source=SOURCE_DIR, dist=dist_dir))
+ )).format(dist=dist_dir), cd=SOURCE_DIR)
sdist = glob.glob(os.path.join(dist_dir, '*.zip'))[0]
wheel = glob.glob(os.path.join(dist_dir, '*.whl'))[0]
# Then update from wheel.
@@ -183,10 +179,8 @@ def _check_test_command_install_requirements(virtualenv, tmpdir):
open('success', 'w').close()
'''))
# Run test command for test package.
- virtualenv.run(' && '.join((
- 'cd {tmpdir}',
- 'python setup.py test -s test',
- )).format(tmpdir=tmpdir))
+ virtualenv.run(
+ ['python', 'setup.py', 'test', '-s', 'test'], cd=str(tmpdir))
assert tmpdir.join('success').check()
@@ -207,7 +201,5 @@ def test_no_missing_dependencies(bare_virtualenv):
Quick and dirty test to ensure all external dependencies are vendored.
"""
for command in ('upload',): # sorted(distutils.command.__all__):
- bare_virtualenv.run(' && '.join((
- 'cd {source}',
- 'python setup.py {command} -h',
- )).format(command=command, source=SOURCE_DIR))
+ bare_virtualenv.run(
+ ['python', 'setup.py', command, '-h'], cd=SOURCE_DIR)