[Checkins] SVN: zc.buildout/branches/1.3/ Bug fixed: extras were ignored in some cases when versions were specified.

Jim Fulton jim at zope.com
Wed Aug 12 16:25:01 EDT 2009


Log message for revision 102715:
  Bug fixed: extras were ignored in some cases when versions were specified.
  
  (Also removed some extra imports and made formatting changes.)
  

Changed:
  U   zc.buildout/branches/1.3/CHANGES.txt
  U   zc.buildout/branches/1.3/src/zc/buildout/easy_install.py
  U   zc.buildout/branches/1.3/src/zc/buildout/tests.py

-=-
Modified: zc.buildout/branches/1.3/CHANGES.txt
===================================================================
--- zc.buildout/branches/1.3/CHANGES.txt	2009-08-12 20:24:58 UTC (rev 102714)
+++ zc.buildout/branches/1.3/CHANGES.txt	2009-08-12 20:25:01 UTC (rev 102715)
@@ -1,6 +1,11 @@
 Change History
 **************
 
+1.3.1 (2009-08-12)
+==================
+
+- Bug fixed: extras were ignored in some cases when versions were specified.
+
 1.3.0 (2009-06-22)
 ==================
 

Modified: zc.buildout/branches/1.3/src/zc/buildout/easy_install.py
===================================================================
--- zc.buildout/branches/1.3/src/zc/buildout/easy_install.py	2009-08-12 20:24:58 UTC (rev 102714)
+++ zc.buildout/branches/1.3/src/zc/buildout/easy_install.py	2009-08-12 20:25:01 UTC (rev 102715)
@@ -34,7 +34,6 @@
 import subprocess
 import sys
 import tempfile
-import urlparse
 import zc.buildout
 import zipimport
 
@@ -55,7 +54,6 @@
 is_jython = sys.platform.startswith('java')
 
 if is_jython:
-    import subprocess
     import java.lang.System
     jython_os_name = (java.lang.System.getProperties()['os.name']).lower()
 
@@ -621,7 +619,9 @@
                 raise IncompatibleVersionError("Bad version", version)
 
             requirement = pkg_resources.Requirement.parse(
-                "%s ==%s" % (requirement.project_name, version))
+                "%s[%s] ==%s" % (requirement.project_name,
+                               ','.join(requirement.extras),
+                               version))
 
         return requirement
 

Modified: zc.buildout/branches/1.3/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/branches/1.3/src/zc/buildout/tests.py	2009-08-12 20:24:58 UTC (rev 102714)
+++ zc.buildout/branches/1.3/src/zc/buildout/tests.py	2009-08-12 20:25:01 UTC (rev 102715)
@@ -16,12 +16,19 @@
 $Id$
 """
 
-import os, re, shutil, sys, tempfile, unittest, zipfile
-from zope.testing import doctest, renormalizing
+from zope.testing import doctest
+from zope.testing import renormalizing
+import os
 import pkg_resources
-import zc.buildout.testing, zc.buildout.easy_install
-
+import re
+import shutil
+import sys
+import tempfile
+import unittest
+import zc.buildout.easy_install
+import zc.buildout.testing
 import zc.buildout.testselectingpython
+import zipfile
 
 os_path_sep = os.path.sep
 if os_path_sep == '\\':
@@ -2527,7 +2534,30 @@
 
     """
 
+def make_sure_versions_dont_cancel_extras():
+    """
+    There was a bug that caused extras in requirements to be lost.
 
+    >>> open('setup.py', 'w').write('''
+    ... from setuptools import setup
+    ... setup(name='extraversiondemo', version='1.0',
+    ...       url='x', author='x', author_email='x',
+    ...       extras_require=dict(foo=['demo']), py_modules=['t'])
+    ... ''')
+    >>> open('README', 'w').close()
+    >>> open('t.py', 'w').close()
+
+    >>> sdist('.', sample_eggs)
+    >>> mkdir('dest')
+    >>> ws = zc.buildout.easy_install.install(
+    ...     ['extraversiondemo[foo]'], 'dest', links=[sample_eggs],
+    ...     versions = dict(extraversiondemo='1.0')
+    ... )
+    >>> sorted(dist.key for dist in ws)
+    ['demo', 'demoneeded', 'extraversiondemo']
+    """
+
+
 ######################################################################
 
 def create_sample_eggs(test, executable=sys.executable):



More information about the Checkins mailing list