summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2015-01-03 02:39:32 -0500
committerJason R. Coombs <jaraco@jaraco.com>2015-01-03 02:39:32 -0500
commitb1ae370e37f5d03f825c139dbb44fd035cf765e9 (patch)
tree2724613ba59916c69ff0b077521d053af2d77bfd
parentfcaf08aefcb830fe38e9de9357fa334ac2c6b04f (diff)
parent79f674c737a72015447c9eac76c344f766c685bb (diff)
downloadpython-setuptools-bitbucket-b1ae370e37f5d03f825c139dbb44fd035cf765e9.tar.gz
Merge with master
-rw-r--r--linkify.py2
-rw-r--r--pkg_resources/__init__.py2
-rw-r--r--pkg_resources/tests/__init__.py0
-rw-r--r--pkg_resources/tests/test_pkg_resources.py (renamed from tests/test_pkg_resources.py)0
-rw-r--r--pkg_resources/tests/test_resources.py (renamed from setuptools/tests/test_resources.py)75
-rw-r--r--setuptools/tests/test_easy_install.py70
6 files changed, 76 insertions, 73 deletions
diff --git a/linkify.py b/linkify.py
index d845581c..e7b3ca7b 100644
--- a/linkify.py
+++ b/linkify.py
@@ -26,7 +26,7 @@ issue_urls = dict(
old_setuptools='http://bugs.python.org/setuptools/issue{old_setuptools}',
jython='http://bugs.jython.org/issue{jython}',
python='http://bugs.python.org/issue{python}',
- interop='https://github.com/pypa/interoperability/issues/{interop}',
+ interop='https://github.com/pypa/interoperability-peps/issues/{interop}',
)
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index ac3807d8..f004315a 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -52,6 +52,8 @@ if PY3:
else:
string_types = str, eval('unicode')
+iteritems = (lambda i: i.items()) if PY3 else lambda i: i.iteritems()
+
# capture these to bypass sandboxing
from os import utime
try:
diff --git a/pkg_resources/tests/__init__.py b/pkg_resources/tests/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/pkg_resources/tests/__init__.py
diff --git a/tests/test_pkg_resources.py b/pkg_resources/tests/test_pkg_resources.py
index 564d7cec..564d7cec 100644
--- a/tests/test_pkg_resources.py
+++ b/pkg_resources/tests/test_pkg_resources.py
diff --git a/setuptools/tests/test_resources.py b/pkg_resources/tests/test_resources.py
index 465c9343..4d0c7e9f 100644
--- a/setuptools/tests/test_resources.py
+++ b/pkg_resources/tests/test_resources.py
@@ -1,7 +1,3 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# NOTE: the shebang and encoding lines are for TestScriptHeader do not remove
-
import os
import sys
import tempfile
@@ -16,8 +12,6 @@ from pkg_resources import (parse_requirements, VersionConflict, parse_version,
packaging = pkg_resources.packaging
-from setuptools.command.easy_install import (get_script_header, is_sh,
- nt_quote_arg)
import six
@@ -214,13 +208,13 @@ class TestEntryPoints:
def assertfields(self, ep):
assert ep.name == "foo"
- assert ep.module_name == "setuptools.tests.test_resources"
+ assert ep.module_name == "pkg_resources.tests.test_resources"
assert ep.attrs == ("TestEntryPoints",)
assert ep.extras == ("x",)
assert ep.load() is TestEntryPoints
assert (
str(ep) ==
- "foo = setuptools.tests.test_resources:TestEntryPoints [x]"
+ "foo = pkg_resources.tests.test_resources:TestEntryPoints [x]"
)
def setup_method(self, method):
@@ -229,13 +223,13 @@ class TestEntryPoints:
def testBasics(self):
ep = EntryPoint(
- "foo", "setuptools.tests.test_resources", ["TestEntryPoints"],
+ "foo", "pkg_resources.tests.test_resources", ["TestEntryPoints"],
["x"], self.dist
)
self.assertfields(ep)
def testParse(self):
- s = "foo = setuptools.tests.test_resources:TestEntryPoints [x]"
+ s = "foo = pkg_resources.tests.test_resources:TestEntryPoints [x]"
ep = EntryPoint.parse(s, self.dist)
self.assertfields(ep)
@@ -561,67 +555,6 @@ class TestParsing:
)
-class TestScriptHeader:
- non_ascii_exe = '/Users/José/bin/python'
- exe_with_spaces = r'C:\Program Files\Python33\python.exe'
-
- def test_get_script_header(self):
- if not sys.platform.startswith('java') or not is_sh(sys.executable):
- # This test is for non-Jython platforms
- expected = '#!%s\n' % nt_quote_arg(os.path.normpath(sys.executable))
- assert get_script_header('#!/usr/local/bin/python') == expected
- expected = '#!%s -x\n' % nt_quote_arg(os.path.normpath(sys.executable))
- assert get_script_header('#!/usr/bin/python -x') == expected
- candidate = get_script_header('#!/usr/bin/python',
- executable=self.non_ascii_exe)
- assert candidate == '#!%s -x\n' % self.non_ascii_exe
- candidate = get_script_header('#!/usr/bin/python',
- executable=self.exe_with_spaces)
- assert candidate == '#!"%s"\n' % self.exe_with_spaces
-
- def test_get_script_header_jython_workaround(self):
- # This test doesn't work with Python 3 in some locales
- if six.PY3 and os.environ.get("LC_CTYPE") in (None, "C", "POSIX"):
- return
-
- class java:
- class lang:
- class System:
- @staticmethod
- def getProperty(property):
- return ""
- sys.modules["java"] = java
-
- platform = sys.platform
- sys.platform = 'java1.5.0_13'
- stdout, stderr = sys.stdout, sys.stderr
- try:
- # A mock sys.executable that uses a shebang line (this file)
- exe = os.path.normpath(os.path.splitext(__file__)[0] + '.py')
- assert (
- get_script_header('#!/usr/local/bin/python', executable=exe)
- ==
- '#!/usr/bin/env %s\n' % exe
- )
-
- # Ensure we generate what is basically a broken shebang line
- # when there's options, with a warning emitted
- sys.stdout = sys.stderr = six.StringIO()
- candidate = get_script_header('#!/usr/bin/python -x',
- executable=exe)
- assert candidate == '#!%s -x\n' % exe
- assert 'Unable to adapt shebang line' in sys.stdout.getvalue()
- sys.stdout = sys.stderr = six.StringIO()
- candidate = get_script_header('#!/usr/bin/python',
- executable=self.non_ascii_exe)
- assert candidate == '#!%s -x\n' % self.non_ascii_exe
- assert 'Unable to adapt shebang line' in sys.stdout.getvalue()
- finally:
- del sys.modules["java"]
- sys.platform = platform
- sys.stdout, sys.stderr = stdout, stderr
-
-
class TestNamespaces:
def setup_method(self, method):
diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py
index 5e83831d..bc025970 100644
--- a/setuptools/tests/test_easy_install.py
+++ b/setuptools/tests/test_easy_install.py
@@ -1,3 +1,7 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# NOTE: the shebang and encoding lines are for TestScriptHeader do not remove
+
"""Easy install Tests
"""
from __future__ import absolute_import
@@ -13,6 +17,7 @@ import logging
import itertools
import io
+import six
from six.moves import urllib
import pytest
import mock
@@ -20,7 +25,9 @@ import mock
from setuptools import sandbox
from setuptools.sandbox import run_setup, SandboxViolation
from setuptools.command.easy_install import (
- easy_install, fix_jython_executable, get_script_args, nt_quote_arg)
+ easy_install, fix_jython_executable, get_script_args, nt_quote_arg,
+ get_script_header, is_sh,
+)
from setuptools.command.easy_install import PthDistributions
from setuptools.command import easy_install as easy_install_pkg
from setuptools.dist import Distribution
@@ -410,3 +417,64 @@ def make_trivial_sdist(dist_path, setup_py):
setup_py_file.size = len(setup_py_bytes.getvalue())
with tarfile_open(dist_path, 'w:gz') as dist:
dist.addfile(setup_py_file, fileobj=setup_py_bytes)
+
+
+class TestScriptHeader:
+ non_ascii_exe = '/Users/José/bin/python'
+ exe_with_spaces = r'C:\Program Files\Python33\python.exe'
+
+ def test_get_script_header(self):
+ if not sys.platform.startswith('java') or not is_sh(sys.executable):
+ # This test is for non-Jython platforms
+ expected = '#!%s\n' % nt_quote_arg(os.path.normpath(sys.executable))
+ assert get_script_header('#!/usr/local/bin/python') == expected
+ expected = '#!%s -x\n' % nt_quote_arg(os.path.normpath(sys.executable))
+ assert get_script_header('#!/usr/bin/python -x') == expected
+ candidate = get_script_header('#!/usr/bin/python',
+ executable=self.non_ascii_exe)
+ assert candidate == '#!%s -x\n' % self.non_ascii_exe
+ candidate = get_script_header('#!/usr/bin/python',
+ executable=self.exe_with_spaces)
+ assert candidate == '#!"%s"\n' % self.exe_with_spaces
+
+ def test_get_script_header_jython_workaround(self):
+ # This test doesn't work with Python 3 in some locales
+ if six.PY3 and os.environ.get("LC_CTYPE") in (None, "C", "POSIX"):
+ return
+
+ class java:
+ class lang:
+ class System:
+ @staticmethod
+ def getProperty(property):
+ return ""
+ sys.modules["java"] = java
+
+ platform = sys.platform
+ sys.platform = 'java1.5.0_13'
+ stdout, stderr = sys.stdout, sys.stderr
+ try:
+ # A mock sys.executable that uses a shebang line (this file)
+ exe = os.path.normpath(os.path.splitext(__file__)[0] + '.py')
+ assert (
+ get_script_header('#!/usr/local/bin/python', executable=exe)
+ ==
+ '#!/usr/bin/env %s\n' % exe
+ )
+
+ # Ensure we generate what is basically a broken shebang line
+ # when there's options, with a warning emitted
+ sys.stdout = sys.stderr = six.StringIO()
+ candidate = get_script_header('#!/usr/bin/python -x',
+ executable=exe)
+ assert candidate == '#!%s -x\n' % exe
+ assert 'Unable to adapt shebang line' in sys.stdout.getvalue()
+ sys.stdout = sys.stderr = six.StringIO()
+ candidate = get_script_header('#!/usr/bin/python',
+ executable=self.non_ascii_exe)
+ assert candidate == '#!%s -x\n' % self.non_ascii_exe
+ assert 'Unable to adapt shebang line' in sys.stdout.getvalue()
+ finally:
+ del sys.modules["java"]
+ sys.platform = platform
+ sys.stdout, sys.stderr = stdout, stderr