aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt7
-rwxr-xr-xREADME.txt6
-rw-r--r--distribute.egg-info/entry_points.txt3
-rw-r--r--distribute_setup.py2
-rw-r--r--docs/conf.py2
-rwxr-xr-xsetup.py2
-rwxr-xr-xsetuptools/package_index.py5
-rwxr-xr-xsetuptools/sandbox.py14
-rw-r--r--setuptools/tests/__init__.py64
-rw-r--r--setuptools/tests/test_easy_install.py15
-rw-r--r--setuptools/tests/test_packageindex.py14
-rw-r--r--setuptools/tests/test_resources.py38
-rw-r--r--test.sh13
13 files changed, 111 insertions, 74 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index eec6a3da..89760759 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,13 @@ CHANGES
=======
------
+0.6.13
+------
+
+* Issue 160: 2.7 gives ValueError("Invalid IPv6 URL")
+*
+
+------
0.6.12
------
diff --git a/README.txt b/README.txt
index dba817db..72d897e7 100755
--- a/README.txt
+++ b/README.txt
@@ -99,9 +99,9 @@ Source installation
Download the source tarball, uncompress it, then run the install command::
- $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.12.tar.gz
- $ tar -xzvf distribute-0.6.12.tar.gz
- $ cd distribute-0.6.12
+ $ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.13.tar.gz
+ $ tar -xzvf distribute-0.6.13.tar.gz
+ $ cd distribute-0.6.13
$ python setup.py install
---------------------------
diff --git a/distribute.egg-info/entry_points.txt b/distribute.egg-info/entry_points.txt
index 3b205225..0ee58646 100644
--- a/distribute.egg-info/entry_points.txt
+++ b/distribute.egg-info/entry_points.txt
@@ -8,7 +8,6 @@ saveopts = setuptools.command.saveopts:saveopts
egg_info = setuptools.command.egg_info:egg_info
register = setuptools.command.register:register
upload_docs = setuptools.command.upload_docs:upload_docs
-upload = setuptools.command.upload:upload
install_egg_info = setuptools.command.install_egg_info:install_egg_info
alias = setuptools.command.alias:alias
easy_install = setuptools.command.easy_install:easy_install
@@ -33,7 +32,7 @@ depends.txt = setuptools.command.egg_info:warn_depends_obsolete
[console_scripts]
easy_install = setuptools.command.easy_install:main
-easy_install-2.3 = setuptools.command.easy_install:main
+easy_install-2.5 = setuptools.command.easy_install:main
[setuptools.file_finders]
svn_cvs = setuptools.command.sdist:_default_revctrl
diff --git a/distribute_setup.py b/distribute_setup.py
index 4f7bd08c..3cb043e2 100644
--- a/distribute_setup.py
+++ b/distribute_setup.py
@@ -46,7 +46,7 @@ except ImportError:
args = [quote(arg) for arg in args]
return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
-DEFAULT_VERSION = "0.6.12"
+DEFAULT_VERSION = "0.6.13"
DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
SETUPTOOLS_FAKED_VERSION = "0.6c11"
diff --git a/docs/conf.py b/docs/conf.py
index 42a072fe..53614ed5 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -48,7 +48,7 @@ copyright = u'2009, The fellowship of the packaging'
# built documents.
#
# The short X.Y version.
-version = '0.6.12'
+version = '0.6.13'
# The full version, including alpha/beta/rc tags.
release = '0.6.4'
diff --git a/setup.py b/setup.py
index 43aa1540..3ae40817 100755
--- a/setup.py
+++ b/setup.py
@@ -37,7 +37,7 @@ init_path = convert_path('setuptools/command/__init__.py')
exec(open(init_path).read(), d)
SETUP_COMMANDS = d['__all__']
-VERSION = "0.6.12"
+VERSION = "0.6.13"
from setuptools import setup, find_packages
from setuptools.command.build_py import build_py as _build_py
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
index 924c15e1..1c50d86f 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -268,7 +268,10 @@ class PackageIndex(Environment):
# process an index page into the package-page index
for match in HREF.finditer(page):
- scan( urlparse.urljoin(url, htmldecode(match.group(1))) )
+ try:
+ scan( urlparse.urljoin(url, htmldecode(match.group(1))) )
+ except ValueError:
+ pass
pkg, ver = scan(url) # ensure this page is in the page index
if pkg:
diff --git a/setuptools/sandbox.py b/setuptools/sandbox.py
index c2f14e7f..a06d4483 100755
--- a/setuptools/sandbox.py
+++ b/setuptools/sandbox.py
@@ -157,13 +157,13 @@ if hasattr(os, 'devnull'):
else:
_EXCEPTIONS = []
-if not sys.version < '2.5':
- try:
- gen_py = os.path.dirname(__import__('win32com.gen_py',
- fromlist=['__name__']).__file__)
- _EXCEPTIONS.append(gen_py)
- except ImportError:
- pass
+try:
+ from win32com.client.gencache import GetGeneratePath
+ _EXCEPTIONS.append(GetGeneratePath())
+ del GetGeneratePath
+except ImportError:
+ # it appears pywin32 is not installed, so no need to exclude.
+ pass
class DirectorySandbox(AbstractSandbox):
"""Restrict operations to a single subdirectory - pseudo-chroot"""
diff --git a/setuptools/tests/__init__.py b/setuptools/tests/__init__.py
index 4fb382ca..9af44a88 100644
--- a/setuptools/tests/__init__.py
+++ b/setuptools/tests/__init__.py
@@ -94,21 +94,21 @@ class DependsTests(TestCase):
from email import __version__
self.assertEqual(req.get_version(), __version__)
- self.assertTrue(req.version_ok('1.0.9'))
- self.assertFalse(req.version_ok('0.9.1'))
- self.assertFalse(req.version_ok('unknown'))
+ self.assert_(req.version_ok('1.0.9'))
+ self.assert_(not req.version_ok('0.9.1'))
+ self.assert_(not req.version_ok('unknown'))
- self.assertTrue(req.is_present())
- self.assertTrue(req.is_current())
+ self.assert_(req.is_present())
+ self.assert_(req.is_current())
req = Require('Email 3000','03000','email',format=LooseVersion)
- self.assertTrue(req.is_present())
- self.assertFalse(req.is_current())
- self.assertFalse(req.version_ok('unknown'))
+ self.assert_(req.is_present())
+ self.assert_(not req.is_current())
+ self.assert_(not req.version_ok('unknown'))
req = Require('Do-what-I-mean','1.0','d-w-i-m')
- self.assertFalse(req.is_present())
- self.assertFalse(req.is_current())
+ self.assert_(not req.is_present())
+ self.assert_(not req.is_current())
req = Require('Tests', None, 'tests', homepage="http://example.com")
self.assertEqual(req.format, None)
@@ -118,8 +118,8 @@ class DependsTests(TestCase):
self.assertEqual(req.homepage, 'http://example.com')
paths = [os.path.dirname(p) for p in __path__]
- self.assertTrue(req.is_present(paths))
- self.assertTrue(req.is_current(paths))
+ self.assert_(req.is_present(paths))
+ self.assert_(req.is_current(paths))
class DistroTests(TestCase):
@@ -137,7 +137,7 @@ class DistroTests(TestCase):
def testDistroType(self):
- self.assertTrue(isinstance(self.dist,setuptools.dist.Distribution))
+ self.assert_(isinstance(self.dist,setuptools.dist.Distribution))
def testExcludePackage(self):
@@ -189,17 +189,17 @@ class DistroTests(TestCase):
dist.exclude(packages=['a'], py_modules=['b'], ext_modules=[self.e2])
def testContents(self):
- self.assertTrue(self.dist.has_contents_for('a'))
+ self.assert_(self.dist.has_contents_for('a'))
self.dist.exclude_package('a')
- self.assertFalse(self.dist.has_contents_for('a'))
+ self.assert_(not self.dist.has_contents_for('a'))
- self.assertTrue(self.dist.has_contents_for('b'))
+ self.assert_(self.dist.has_contents_for('b'))
self.dist.exclude_package('b')
- self.assertFalse(self.dist.has_contents_for('b'))
+ self.assert_(not self.dist.has_contents_for('b'))
- self.assertTrue(self.dist.has_contents_for('c'))
+ self.assert_(self.dist.has_contents_for('c'))
self.dist.exclude_package('c')
- self.assertFalse(self.dist.has_contents_for('c'))
+ self.assert_(not self.dist.has_contents_for('c'))
@@ -269,12 +269,12 @@ class FeatureTests(TestCase):
)
def testDefaults(self):
- self.assertFalse(
+ self.assert_(not
Feature(
"test",standard=True,remove='x',available=False
).include_by_default()
)
- self.assertTrue(
+ self.assert_(
Feature("test",standard=True,remove='x').include_by_default()
)
# Feature must have either kwargs, removes, or require_features
@@ -288,33 +288,33 @@ class FeatureTests(TestCase):
def testFeatureOptions(self):
dist = self.dist
- self.assertTrue(
+ self.assert_(
('with-dwim',None,'include DWIM') in dist.feature_options
)
- self.assertTrue(
+ self.assert_(
('without-dwim',None,'exclude DWIM (default)') in dist.feature_options
)
- self.assertTrue(
+ self.assert_(
('with-bar',None,'include bar (default)') in dist.feature_options
)
- self.assertTrue(
+ self.assert_(
('without-bar',None,'exclude bar') in dist.feature_options
)
self.assertEqual(dist.feature_negopt['without-foo'],'with-foo')
self.assertEqual(dist.feature_negopt['without-bar'],'with-bar')
self.assertEqual(dist.feature_negopt['without-dwim'],'with-dwim')
- self.assertFalse('without-baz' in dist.feature_negopt)
+ self.assert_(not 'without-baz' in dist.feature_negopt)
def testUseFeatures(self):
dist = self.dist
self.assertEqual(dist.with_foo,1)
self.assertEqual(dist.with_bar,0)
self.assertEqual(dist.with_baz,1)
- self.assertFalse('bar_et' in dist.py_modules)
- self.assertFalse('pkg.bar' in dist.packages)
- self.assertTrue('pkg.baz' in dist.packages)
- self.assertTrue('scripts/baz_it' in dist.scripts)
- self.assertTrue(('libfoo','foo/foofoo.c') in dist.libraries)
+ self.assert_(not 'bar_et' in dist.py_modules)
+ self.assert_(not 'pkg.bar' in dist.packages)
+ self.assert_('pkg.baz' in dist.packages)
+ self.assert_('scripts/baz_it' in dist.scripts)
+ self.assert_(('libfoo','foo/foofoo.c') in dist.libraries)
self.assertEqual(dist.ext_modules,[])
self.assertEqual(dist.require_features, [self.req])
@@ -331,7 +331,7 @@ class TestCommandTests(TestCase):
def testTestIsCommand(self):
test_cmd = makeSetup().get_command_obj('test')
- self.assertTrue(isinstance(test_cmd, distutils.cmd.Command))
+ self.assert_(isinstance(test_cmd, distutils.cmd.Command))
def testLongOptSuiteWNoDefault(self):
ts1 = makeSetup(script_args=['test','--test-suite=foo.tests.suite'])
diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py
index 7fd5bdd9..4791e03c 100644
--- a/setuptools/tests/test_easy_install.py
+++ b/setuptools/tests/test_easy_install.py
@@ -10,6 +10,16 @@ from setuptools.command import easy_install as easy_install_pkg
from setuptools.dist import Distribution
from pkg_resources import Distribution as PRDistribution
+try:
+ import multiprocessing
+ import logging
+ _LOG = logging.getLogger('test_easy_install')
+ logging.basicConfig(level=logging.INFO, stream=sys.stderr)
+ _MULTIPROC = True
+except ImportError:
+ _MULTIPROC = False
+ _LOG = None
+
class FakeDist(object):
def get_entry_map(self, group):
if group != 'console_scripts':
@@ -179,6 +189,11 @@ class TestUserInstallTest(unittest.TestCase):
cmd.ensure_finalized()
self.assertTrue(cmd.user, 'user should be implied')
+ def test_multiproc_atexit(self):
+ if not _MULTIPROC:
+ return
+ _LOG.info('this should not break')
+
def test_user_install_not_implied_without_usersite_enabled(self):
site.ENABLE_USER_SITE = False # disabled sometimes
#XXX: replace with something meaningfull
diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py
index 18a06de5..8ae7a5b9 100644
--- a/setuptools/tests/test_packageindex.py
+++ b/setuptools/tests/test_packageindex.py
@@ -1,7 +1,7 @@
"""Package Index Tests
"""
# More would be better!
-
+import sys
import os, shutil, tempfile, unittest, urllib2
import pkg_resources
import setuptools.package_index
@@ -10,7 +10,7 @@ class TestPackageIndex(unittest.TestCase):
def test_bad_urls(self):
index = setuptools.package_index.PackageIndex()
- url = 'http://127.0.0.1/nonesuch/test_package_index'
+ url = 'http://127.0.0.1:0/nonesuch/test_package_index'
try:
v = index.open_url(url)
except Exception, v:
@@ -57,6 +57,16 @@ class TestPackageIndex(unittest.TestCase):
except Exception, v:
self.assert_('nonnumeric port' in str(v))
+
+ # issue #160
+ if sys.version_info[0] == 2 and sys.version_info[1] == 7:
+ # this should not fail
+ url = 'http://example.com'
+ page = ('<a href="http://www.famfamfam.com]('
+ 'http://www.famfamfam.com/">')
+ index.process_index(url, page)
+
+
def test_url_ok(self):
index = setuptools.package_index.PackageIndex(
hosts=('www.example.com',)
diff --git a/setuptools/tests/test_resources.py b/setuptools/tests/test_resources.py
index c1dc4887..883cfad1 100644
--- a/setuptools/tests/test_resources.py
+++ b/setuptools/tests/test_resources.py
@@ -35,7 +35,7 @@ class DistroTests(TestCase):
ad.add(Distribution.from_filename("FooPkg-1.2-py2.4.egg"))
# Name is in there now
- self.assertTrue(ad['FooPkg'])
+ self.assert_(ad['FooPkg'])
# But only 1 package
self.assertEqual(list(ad), ['foopkg'])
@@ -218,7 +218,7 @@ class EntryPointTests(TestCase):
self.assertEqual(ep.module_name,"setuptools.tests.test_resources")
self.assertEqual(ep.attrs, ("EntryPointTests",))
self.assertEqual(ep.extras, ("x",))
- self.assertTrue(ep.load() is EntryPointTests)
+ self.assert_(ep.load() is EntryPointTests)
self.assertEqual(
str(ep),
"foo = setuptools.tests.test_resources:EntryPointTests [x]"
@@ -318,20 +318,20 @@ class RequirementsTests(TestCase):
foo_dist = Distribution.from_filename("FooPkg-1.3_1.egg")
twist11 = Distribution.from_filename("Twisted-1.1.egg")
twist12 = Distribution.from_filename("Twisted-1.2.egg")
- self.assertTrue(parse_version('1.2') in r)
- self.assertTrue(parse_version('1.1') not in r)
- self.assertTrue('1.2' in r)
- self.assertTrue('1.1' not in r)
- self.assertTrue(foo_dist not in r)
- self.assertTrue(twist11 not in r)
- self.assertTrue(twist12 in r)
+ self.assert_(parse_version('1.2') in r)
+ self.assert_(parse_version('1.1') not in r)
+ self.assert_('1.2' in r)
+ self.assert_('1.1' not in r)
+ self.assert_(foo_dist not in r)
+ self.assert_(twist11 not in r)
+ self.assert_(twist12 in r)
def testAdvancedContains(self):
r, = parse_requirements("Foo>=1.2,<=1.3,==1.9,>2.0,!=2.5,<3.0,==4.5")
for v in ('1.2','1.2.2','1.3','1.9','2.0.1','2.3','2.6','3.0c1','4.5'):
- self.assertTrue(v in r, (v,r))
+ self.assert_(v in r, (v,r))
for v in ('1.2c1','1.3.1','1.5','1.9.1','2.0','2.5','3.0','4.0'):
- self.assertTrue(v not in r, (v,r))
+ self.assert_(v not in r, (v,r))
def testOptionsAndHashing(self):
@@ -353,14 +353,14 @@ class RequirementsTests(TestCase):
r2 = Requirement.parse("foo!=0.3a4")
d = Distribution.from_filename
- self.assertFalse(d("foo-0.3a4.egg") in r1)
- self.assertFalse(d("foo-0.3a1.egg") in r1)
- self.assertFalse(d("foo-0.3a4.egg") in r2)
+ self.assert_(d("foo-0.3a4.egg") not in r1)
+ self.assert_(d("foo-0.3a1.egg") not in r1)
+ self.assert_(d("foo-0.3a4.egg") not in r2)
- self.assertTrue(d("foo-0.3a2.egg") in r1)
- self.assertTrue(d("foo-0.3a2.egg") in r2)
- self.assertTrue(d("foo-0.3a3.egg") in r2)
- self.assertTrue(d("foo-0.3a5.egg") in r2)
+ self.assert_(d("foo-0.3a2.egg") in r1)
+ self.assert_(d("foo-0.3a2.egg") in r2)
+ self.assert_(d("foo-0.3a3.egg") in r2)
+ self.assert_(d("foo-0.3a5.egg") in r2)
def testDistributeSetuptoolsOverride(self):
# Plain setuptools or distribute mean we return distribute.
@@ -480,7 +480,7 @@ class ParseTests(TestCase):
def testVersionOrdering(self):
def c(s1,s2):
p1, p2 = parse_version(s1),parse_version(s2)
- self.assertTrue(p1<p2, (s1,s2,p1,p2))
+ self.assert_(p1<p2, (s1,s2,p1,p2))
c('2.1','2.1.1')
c('2a1','2b0')
diff --git a/test.sh b/test.sh
index ac309dec..61599adb 100644
--- a/test.sh
+++ b/test.sh
@@ -1,6 +1,9 @@
-python2.3 setup.py test
-python2.4 setup.py test
-python2.5 setup.py test
-python2.6 setup.py test
-python3.1 setup.py test
+python2.3 setup.py -q test
+python2.4 setup.py -q test
+python2.5 setup.py -q test
+python2.6 setup.py -q test
+python2.7 setup.py -q test
+
+rm -rf build
+python3.1 setup.py -q test