[Checkins] SVN: zc.buildout/branches/debug/src/zc/buildout/ Bugs Fixed

Jim Fulton jim at zope.com
Wed Dec 6 11:45:05 EST 2006


Log message for revision 71456:
  Bugs Fixed
  ----------
  
  - Uninstall recipes weren't loaded correctly in cases where
    no parts in the (new) configuration used the recipe egg.
  

Changed:
  U   zc.buildout/branches/debug/src/zc/buildout/buildout.py
  U   zc.buildout/branches/debug/src/zc/buildout/tests.py

-=-
Modified: zc.buildout/branches/debug/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/debug/src/zc/buildout/buildout.py	2006-12-06 16:11:45 UTC (rev 71455)
+++ zc.buildout/branches/debug/src/zc/buildout/buildout.py	2006-12-06 16:45:04 UTC (rev 71456)
@@ -247,19 +247,16 @@
                     continue
 
                 # ununstall part
-                self._logger.info('Uninstalling waaa %s', part)
+                self._logger.info('Uninstalling %s', part)
 
                 # run uinstall recipe
                 recipe, entry = _recipe(installed_part_options[part])
-                print '?', recipe, entry
                 try:
                     uninstaller = _install_and_load(
-                        recipe, 'zc.buildout.ununstall', entry, self)
+                        recipe, 'zc.buildout.uninstall', entry, self)
                     self._logger.info('Running uninstall recipe')
                     uninstaller(part, installed_part_options[part])
-                except (ImportError, pkg_resources.DistributionNotFound):
-                    print 'could not load'
-                    # no uninstall recipe registered
+                except (ImportError, pkg_resources.DistributionNotFound), v:
                     pass
 
                 # remove created files and directories
@@ -624,30 +621,39 @@
 
 
 def _install_and_load(spec, group, entry, buildout):
-    req = pkg_resources.Requirement.parse(spec)
+    try:
 
-    buildout_options = buildout['buildout']
-    if pkg_resources.working_set.find(req) is None:
-        if buildout_options['offline'] == 'true':
-            dest = None
-            path = [buildout_options['develop-eggs-directory'],
-                    buildout_options['eggs-directory'],
-                    ]
-        else:
-            dest = buildout_options['eggs-directory']
-            path = [buildout_options['develop-eggs-directory']]
+        req = pkg_resources.Requirement.parse(spec)
 
-        zc.buildout.easy_install.install(
-            [spec], dest,
-            links=buildout._links,
-            index=buildout_options.get('index'),
-            path=path,
-            working_set=pkg_resources.working_set,
-            )
+        buildout_options = buildout['buildout']
+        if pkg_resources.working_set.find(req) is None:
+            if buildout_options['offline'] == 'true':
+                dest = None
+                path = [buildout_options['develop-eggs-directory'],
+                        buildout_options['eggs-directory'],
+                        ]
+            else:
+                dest = buildout_options['eggs-directory']
+                path = [buildout_options['develop-eggs-directory']]
 
-    return pkg_resources.load_entry_point(
-        req.project_name, group, entry)
+            zc.buildout.easy_install.install(
+                [spec], dest,
+                links=buildout._links,
+                index=buildout_options.get('index'),
+                path=path,
+                working_set=pkg_resources.working_set,
+                )
 
+        return pkg_resources.load_entry_point(
+            req.project_name, group, entry)
+
+    except Exception, v:
+        buildout._logger.log(
+            1,
+            "Could't load %s entry point %s\nfrom %s:\n%s.",
+            group, entry, spec, v)
+        raise
+
 class Options(UserDict.DictMixin):
 
     def __init__(self, buildout, section, data):

Modified: zc.buildout/branches/debug/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/branches/debug/src/zc/buildout/tests.py	2006-12-06 16:11:45 UTC (rev 71455)
+++ zc.buildout/branches/debug/src/zc/buildout/tests.py	2006-12-06 16:45:04 UTC (rev 71456)
@@ -796,6 +796,12 @@
     ... ''')
 
     >>> print system(join('bin', 'buildout')),
+    buildout: Develop: /sample-buildout/recipes
+    buildout: Uninstalling demo
+    buildout: Running uninstall recipe
+    uninstalling
+    buildout: Installing demo
+    installing
 
 
     >>> write('buildout.cfg', '''
@@ -803,9 +809,12 @@
     ... develop = recipes
     ... parts = 
     ... ''')
-    
 
     >>> print system(join('bin', 'buildout')),
+    buildout: Develop: /sample-buildout/recipes
+    buildout: Uninstalling demo
+    buildout: Running uninstall recipe
+    uninstalling
 
 """
 



More information about the Checkins mailing list