[Zope-CVS] CVS: Products/Basket - utils.py:1.13

Chris McDonough chrism at plope.com
Tue Nov 8 15:28:36 EST 2005


Update of /cvs-repository/Products/Basket
In directory cvs.zope.org:/tmp/cvs-serv7700

Modified Files:
	utils.py 
Log Message:
More EggProductContext tests.



=== Products/Basket/utils.py 1.12 => 1.13 ===
--- Products/Basket/utils.py:1.12	Tue Nov  8 13:29:51 2005
+++ Products/Basket/utils.py	Tue Nov  8 15:28:06 2005
@@ -31,8 +31,7 @@
 from Interface.Implements import instancesOfObjectImplements
 import Products
 
-from zLOG import LOG
-from zLOG import ERROR
+import zLOG
 
 _marker = ()
 
@@ -133,8 +132,8 @@
 
 class EggProduct(Product):
     def __init__(self, id, title):
-        self.id=id
-        self.title=title
+        self.id = id
+        self.title = title
 
     def manage_get_product_readme__(self):
         for fname in ('README.txt', 'README.TXT', 'readme.txt'):
@@ -159,12 +158,12 @@
         self.initializer = initializer
         self.app = app
         self.package = package
-        self.product = self.createProductObject()
+        self.product = self.create_product_object()
         self.permissions = {}
         self.new_permissions = {}
         self.meta_types = {}
         
-    def createProductObject(self):
+    def create_product_object(self):
         # Create a persistent object in the ControlPanel.Products area
         # representing a product packaged as an egg and set it as self.product
         products = self.app.Control_Panel.Products
@@ -173,65 +172,63 @@
         packagename = self.package.__name__
         productname = self.productname
 
-        if hasattr(self.package, '__import_error__'):
-            ie = self.package.__import_error__
-        else:
-            ie = None
+        ie = getattr(self.package, '__import_error__', None)
 
         # Retrieve version number from any suitable version.txt
         for fname in ('version.txt', 'VERSION.txt', 'VERSION.TXT'):
             if pkg_resources.resource_exists(packagename, fname):
-                fver = pkg_resources.resource_string(packagename, fname)
+                fver = pkg_resources.resource_string(packagename, fname).strip()
                 break
 
         old = None
 
-        try:
-            if ihasattr(products, productname):
-                old = getattr(products, productname)
-                if ( ihasattr(old, 'version') and old.version == fver ):
-                    if hasattr(old, 'import_error_') and \
-                       old.import_error_==ie:
-                        # Version hasn't changed. Don't reinitialize.
-                        return old
-        except ConflictError:
-            raise
-        except:
-            pass
+        if ihasattr(products, productname):
+            old = getattr(products, productname)
+            if ihasattr(old, 'version') and old.version == fver:
+                old_ie = getattr(old, 'import_error_', None)
+                if old_ie == ie:
+                    # Version hasn't changed. Don't reinitialize.
+                    return old
 
         f = fver and (" (%s)" % fver)
-        product = EggProduct(productname, 'Installed product %s%s' %
+        product = EggProduct(productname, 'Installed egg product %s%s' %
                              (productname, f))
 
         if old is not None:
-            app._manage_remove_product_meta_type(product)
+            assert hasattr(self.app, '_manage_remove_product_meta_type')
+            self.app._manage_remove_product_meta_type(product)
             products._delObject(productname)
             for id, v in old.objectItems():
-                try: product._setObject(id, v)
-                except: pass
+                try:
+                    product._setObject(id, v)
+                except:
+                    zLOG.LOG('EggProductContext Initialization', zLOG.INFO,
+                             ('Error when cleaning old persistent data from '
+                              'Control Panel for %s.%s' % (productname, id)),
+                             error=sys.exc_info())
 
         products._setObject(productname, product)
-        product.icon='p_/InstalledProduct_icon'
-        product.version=fver
-        product.home=str(self.package.__path__)
-
-        product.manage_options=(Folder.manage_options[0],) + \
-                                tuple(Folder.manage_options[2:])
-        product._distribution=None
-        product.manage_distribution=None
-        product.thisIsAnInstalledProduct=1
+        product.icon = 'p_/InstalledProduct_icon'
+        product.version = fver
+        product.home = str(self.package.__path__)
+
+        product.manage_options = (Folder.manage_options[0],) + \
+                             tuple(Folder.manage_options[2:])
+        product._distribution = None
+        product.manage_distribution = None
+        product.thisIsAnInstalledProduct = 1
 
         if ie:
-            product.import_error_=ie
-            product.title='Broken product %s' % productname
-            product.icon='p_/BrokenProduct_icon'
-            product.manage_options=(
+            product.import_error_ = ie
+            product.title = 'Broken product %s' % productname
+            product.icon = 'p_/BrokenProduct_icon'
+            product.manage_options = (
                 {'label':'Traceback', 'action':'manage_traceback'},
                 )
 
         for fname in ('README.txt', 'README.TXT', 'readme.txt'):
             if pkg_resources.resource_exists(packagename, fname):
-                product.manage_options=product.manage_options+(
+                product.manage_options = product.manage_options+(
                     {'label':'README', 'action':'manage_readme'},
                     )
                 break
@@ -241,7 +238,7 @@
             return product
 
         # Give the ZClass fixup code in Application
-        Globals.__disk_product_installed__=1
+        Globals.__disk_product_installed__ = 1
         product.name = productname
         return product
     



More information about the Zope-CVS mailing list