diff options
-rw-r--r-- | CHANGES.txt | 7 | ||||
-rwxr-xr-x | README.txt | 6 | ||||
-rw-r--r-- | distribute.egg-info/entry_points.txt | 3 | ||||
-rw-r--r-- | distribute_setup.py | 2 | ||||
-rw-r--r-- | docs/conf.py | 2 | ||||
-rwxr-xr-x | setup.py | 2 | ||||
-rwxr-xr-x | setuptools/package_index.py | 5 | ||||
-rwxr-xr-x | setuptools/sandbox.py | 14 | ||||
-rw-r--r-- | setuptools/tests/__init__.py | 64 | ||||
-rw-r--r-- | setuptools/tests/test_easy_install.py | 15 | ||||
-rw-r--r-- | setuptools/tests/test_packageindex.py | 14 | ||||
-rw-r--r-- | setuptools/tests/test_resources.py | 38 | ||||
-rw-r--r-- | test.sh | 13 |
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 ------ @@ -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' @@ -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') @@ -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 |