[Checkins] SVN: Products.PluginRegistry/trunk/Products/PluginRegistry/ PEP 8, import cleanups, improved test covarage.

Tres Seaver tseaver at palladion.com
Thu Jul 1 17:26:02 EDT 2010


Log message for revision 114067:
  PEP 8, import cleanups, improved test covarage.

Changed:
  U   Products.PluginRegistry/trunk/Products/PluginRegistry/PluginRegistry.py
  U   Products.PluginRegistry/trunk/Products/PluginRegistry/interfaces.py
  U   Products.PluginRegistry/trunk/Products/PluginRegistry/tests/test_PluginRegistry.py
  U   Products.PluginRegistry/trunk/Products/PluginRegistry/utils.py

-=-
Modified: Products.PluginRegistry/trunk/Products/PluginRegistry/PluginRegistry.py
===================================================================
--- Products.PluginRegistry/trunk/Products/PluginRegistry/PluginRegistry.py	2010-07-01 21:26:01 UTC (rev 114066)
+++ Products.PluginRegistry/trunk/Products/PluginRegistry/PluginRegistry.py	2010-07-01 21:26:01 UTC (rev 114067)
@@ -13,58 +13,39 @@
 #
 ##############################################################################
 """ Classes: PluginRegistry
-
-$Id$
 """
 import logging
 
-from Persistence import Persistent
-from App.ImageFile import ImageFile
-from Acquisition import Implicit, aq_parent, aq_inner
 from AccessControl import ClassSecurityInfo
 from AccessControl.Permissions import manage_users as ManageUsers
-from Persistence import PersistentMapping
-from OFS.SimpleItem import SimpleItem
+from Acquisition import aq_parent
+from Acquisition import aq_inner
 from App.class_init import default__class_init__ as InitializeClass
-
-try:
-    from webdav.interfaces import IWriteLock
-except ImportError:
-    try:
-        from Products.Five.interfaces import IWriteLock
-    except ImportError:
-        _HAS_Z3_DAV_INTERFACES = False
-        from webdav.WriteLockInterface import WriteLockInterface
-    else:
-        _HAS_Z3_DAV_INTERFACES = True
-else:
-    _HAS_Z3_DAV_INTERFACES = True
-
+from App.ImageFile import ImageFile
+from OFS.SimpleItem import SimpleItem
+from Persistence import PersistentMapping
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
-from Products.PageTemplates.Expressions import getEngine
-from Products.PageTemplates.Expressions import SecureModuleImporter
+from webdav.interfaces import IWriteLock
+from zope.interface import implements
 
-from interfaces import IPluginRegistry
-from interfaces import _HAS_Z3_INTERFACES
-if _HAS_Z3_INTERFACES:
-    from zope.interface import implements
+from Products.PluginRegistry.interfaces import IPluginRegistry
 
 try:
-    from exportimport import _updatePluginRegistry
+    from Products.PluginRegistry.exportimport import _updatePluginRegistry
 except ImportError:
     _HAS_GENERIC_SETUP = False
 else:
     _HAS_GENERIC_SETUP = True
 
-from utils import _wwwdir
+from Products.PluginRegistry.utils import _wwwdir
 
 logger = logging.getLogger('PluginRegistry')
 
-class PluginRegistry( SimpleItem ):
+class PluginRegistry(SimpleItem):
 
     """ Implement IPluginRegistry as an independent, ZMI-manageable object.
 
-    o Each plugin type holds an ordered list of ( id, wrapper ) tuples.
+    o Each plugin type holds an ordered list of (id, wrapper) tuples.
     """
     implements(IPluginRegistry, IWriteLock)
 
@@ -74,7 +55,7 @@
 
     _plugins = None
 
-    def __init__( self, plugin_type_info=() ):
+    def __init__(self, plugin_type_info=()):
 
         if isinstance(plugin_type_info, basestring):
             # some tool is passing us our ID.
@@ -92,8 +73,8 @@
     #
     #   IPluginRegistry implementation
     #
-    security.declareProtected( ManageUsers, 'listPluginTypeInfo' )
-    def listPluginTypeInfo( self ):
+    security.declareProtected(ManageUsers, 'listPluginTypeInfo')
+    def listPluginTypeInfo(self):
 
         """ See IPluginRegistry.
         """
@@ -105,88 +86,88 @@
             info['interface'] = ptype
             info['methods'] = ptype.names()
 
-            result.append( info )
+            result.append(info)
 
         return result
 
-    security.declareProtected( ManageUsers, 'listPlugins' )
-    def listPlugins( self, plugin_type ):
+    security.declareProtected(ManageUsers, 'listPlugins')
+    def listPlugins(self, plugin_type):
 
         """ See IPluginRegistry.
         """
         result = []
 
-        parent = aq_parent( aq_inner( self ) )
+        parent = aq_parent(aq_inner(self))
 
-        for plugin_id in self._getPlugins( plugin_type ):
+        for plugin_id in self._getPlugins(plugin_type):
 
-            plugin = parent._getOb( plugin_id )
-            if not _satisfies( plugin, plugin_type ):
-                logger.debug( 'Active plugin %s no longer implements %s'
-                                % ( plugin_id, plugin_type )
-                            )
+            plugin = parent._getOb(plugin_id)
+            if not _satisfies(plugin, plugin_type):
+                logger.debug('Active plugin %s no longer implements %s'
+                                % (plugin_id, plugin_type)
+                           )
             else:
-                result.append( ( plugin_id, plugin ) )
+                result.append((plugin_id, plugin))
 
         return result
 
-    security.declareProtected( ManageUsers, 'getPluginInfo' )
-    def getPluginInfo( self, plugin_type ):
+    security.declareProtected(ManageUsers, 'getPluginInfo')
+    def getPluginInfo(self, plugin_type):
 
         """ See IPluginRegistry.
         """
-        plugin_type = self._getInterfaceFromName( plugin_type )
+        plugin_type = self._getInterfaceFromName(plugin_type)
         return self._plugin_type_info[plugin_type]
 
-    security.declareProtected( ManageUsers, 'listPluginIds' )
-    def listPluginIds( self, plugin_type ):
+    security.declareProtected(ManageUsers, 'listPluginIds')
+    def listPluginIds(self, plugin_type):
 
         """ See IPluginRegistry.
         """
 
-        return self._getPlugins( plugin_type )
+        return self._getPlugins(plugin_type)
 
-    security.declareProtected( ManageUsers, 'activatePlugin' )
-    def activatePlugin( self, plugin_type, plugin_id ):
+    security.declareProtected(ManageUsers, 'activatePlugin')
+    def activatePlugin(self, plugin_type, plugin_id):
 
         """ See IPluginRegistry.
         """
-        plugins = list( self._getPlugins( plugin_type ) )
+        plugins = list(self._getPlugins(plugin_type))
 
         if plugin_id in plugins:
             raise KeyError, 'Duplicate plugin id: %s' % plugin_id
 
-        parent = aq_parent( aq_inner( self ) )
-        plugin = parent._getOb( plugin_id ) 
+        parent = aq_parent(aq_inner(self))
+        plugin = parent._getOb(plugin_id) 
 
         if not _satisfies(plugin, plugin_type):
             raise ValueError, 'Plugin does not implement %s' % plugin_type 
         
-        plugins.append( plugin_id )
-        self._plugins[ plugin_type ] = tuple( plugins )
+        plugins.append(plugin_id)
+        self._plugins[plugin_type] = tuple(plugins)
 
-    security.declareProtected( ManageUsers, 'deactivatePlugin' )
-    def deactivatePlugin( self, plugin_type, plugin_id ):
+    security.declareProtected(ManageUsers, 'deactivatePlugin')
+    def deactivatePlugin(self, plugin_type, plugin_id):
 
         """ See IPluginRegistry.
         """
-        plugins = list( self._getPlugins( plugin_type ) )
+        plugins = list(self._getPlugins(plugin_type))
 
         if not plugin_id in plugins:
             raise KeyError, 'Invalid plugin id: %s' % plugin_id
 
-        plugins = [ x for x in plugins if x != plugin_id ]
-        self._plugins[ plugin_type ] = tuple( plugins )
+        plugins = [x for x in plugins if x != plugin_id]
+        self._plugins[plugin_type] = tuple(plugins)
 
-    security.declareProtected( ManageUsers, 'movePluginsUp' )
-    def movePluginsUp( self, plugin_type, ids_to_move ):
+    security.declareProtected(ManageUsers, 'movePluginsUp')
+    def movePluginsUp(self, plugin_type, ids_to_move):
 
         """ See IPluginRegistry.
         """
-        ids = list( self._getPlugins( plugin_type ) )
-        count = len( ids )
+        ids = list(self._getPlugins(plugin_type))
+        count = len(ids)
 
-        indexes = list( map( ids.index, ids_to_move ) )
+        indexes = list(map(ids.index, ids_to_move))
         indexes.sort()
 
         for i1 in indexes:
@@ -199,19 +180,19 @@
                 # i1 is already on top
                 continue
 
-            ids[ i2 ], ids[ i1 ] = ids[ i1 ], ids[ i2 ]
+            ids[i2], ids[i1] = ids[i1], ids[i2]
 
-        self._plugins[ plugin_type ] = tuple( ids )
+        self._plugins[plugin_type] = tuple(ids)
 
-    security.declareProtected( ManageUsers, 'movePluginsDown' )
-    def movePluginsDown( self, plugin_type, ids_to_move ):
+    security.declareProtected(ManageUsers, 'movePluginsDown')
+    def movePluginsDown(self, plugin_type, ids_to_move):
 
         """ See IPluginRegistry.
         """
-        ids = list( self._getPlugins( plugin_type ) )
-        count = len( ids )
+        ids = list(self._getPlugins(plugin_type))
+        count = len(ids)
 
-        indexes = list( map( ids.index, ids_to_move ) )
+        indexes = list(map(ids.index, ids_to_move))
         indexes.sort()
         indexes.reverse()
 
@@ -221,136 +202,136 @@
                 raise IndexError, i1
 
             i2 = i1 + 1
-            if i2 == len( ids ):
+            if i2 == len(ids):
                 # i1 is already on the bottom
                 continue
 
-            ids[ i2 ], ids[ i1 ] = ids[ i1 ], ids[ i2 ]
+            ids[i2], ids[i1] = ids[i1], ids[i2]
 
-        self._plugins[ plugin_type ] = tuple( ids )
+        self._plugins[plugin_type] = tuple(ids)
 
     #
     #   ZMI
     #
-    arrow_right_gif = ImageFile( 'www/arrow-right.gif', globals() )
-    arrow_left_gif = ImageFile( 'www/arrow-left.gif', globals() )
-    arrow_up_gif = ImageFile( 'www/arrow-up.gif', globals() )
-    arrow_down_gif = ImageFile( 'www/arrow-down.gif', globals() )
+    arrow_right_gif = ImageFile('www/arrow-right.gif', globals())
+    arrow_left_gif = ImageFile('www/arrow-left.gif', globals())
+    arrow_up_gif = ImageFile('www/arrow-up.gif', globals())
+    arrow_down_gif = ImageFile('www/arrow-down.gif', globals())
 
-    security.declareProtected( ManageUsers, 'manage_activatePlugins' )
-    def manage_activatePlugins( self
+    security.declareProtected(ManageUsers, 'manage_activatePlugins')
+    def manage_activatePlugins(self
                              , plugin_type
                              , plugin_ids
                              , RESPONSE
-                             ):
+                            ):
         """ Shim into ZMI.
         """
-        interface = self._getInterfaceFromName( plugin_type )
+        interface = self._getInterfaceFromName(plugin_type)
         for id in plugin_ids:
-            self.activatePlugin( interface, id )
-        RESPONSE.redirect( '%s/manage_plugins?plugin_type=%s'
-                         % ( self.absolute_url(), plugin_type )
-                         )
+            self.activatePlugin(interface, id)
+        RESPONSE.redirect('%s/manage_plugins?plugin_type=%s'
+                         % (self.absolute_url(), plugin_type)
+                        )
 
-    security.declareProtected( ManageUsers, 'manage_deactivatePlugins' )
-    def manage_deactivatePlugins( self
+    security.declareProtected(ManageUsers, 'manage_deactivatePlugins')
+    def manage_deactivatePlugins(self
                                 , plugin_type
                                 , plugin_ids
                                 , RESPONSE
-                                ):
+                               ):
         """ Shim into ZMI.
         """
-        interface = self._getInterfaceFromName( plugin_type )
+        interface = self._getInterfaceFromName(plugin_type)
         for id in plugin_ids:
-            self.deactivatePlugin( interface, id )
+            self.deactivatePlugin(interface, id)
 
-        RESPONSE.redirect( '%s/manage_plugins?plugin_type=%s'
-                         % ( self.absolute_url(), plugin_type )
-                         )
+        RESPONSE.redirect('%s/manage_plugins?plugin_type=%s'
+                         % (self.absolute_url(), plugin_type)
+                        )
 
-    security.declareProtected( ManageUsers, 'manage_movePluginsUp' )
-    def manage_movePluginsUp( self
+    security.declareProtected(ManageUsers, 'manage_movePluginsUp')
+    def manage_movePluginsUp(self
                             , plugin_type
                             , plugin_ids
                             , RESPONSE
-                            ):
+                           ):
         """ Shim into ZMI.
         """
-        interface = self._getInterfaceFromName( plugin_type )
-        self.movePluginsUp( interface, plugin_ids )
+        interface = self._getInterfaceFromName(plugin_type)
+        self.movePluginsUp(interface, plugin_ids)
 
-        RESPONSE.redirect( '%s/manage_plugins?plugin_type=%s'
-                         % ( self.absolute_url(), plugin_type )
-                         )
+        RESPONSE.redirect('%s/manage_plugins?plugin_type=%s'
+                         % (self.absolute_url(), plugin_type)
+                        )
 
-    security.declareProtected( ManageUsers, 'manage_movePluginsDown' )
-    def manage_movePluginsDown( self
+    security.declareProtected(ManageUsers, 'manage_movePluginsDown')
+    def manage_movePluginsDown(self
                               , plugin_type
                               , plugin_ids
                               , RESPONSE
-                              ):
+                             ):
         """ Shim into ZMI.
         """
-        interface = self._getInterfaceFromName( plugin_type )
-        self.movePluginsDown( interface, plugin_ids )
+        interface = self._getInterfaceFromName(plugin_type)
+        self.movePluginsDown(interface, plugin_ids)
 
-        RESPONSE.redirect( '%s/manage_plugins?plugin_type=%s'
-                         % ( self.absolute_url(), plugin_type )
-                         )
+        RESPONSE.redirect('%s/manage_plugins?plugin_type=%s'
+                         % (self.absolute_url(), plugin_type)
+                        )
 
-    security.declareProtected( ManageUsers, 'getAllPlugins' )
-    def getAllPlugins( self, plugin_type ):
+    security.declareProtected(ManageUsers, 'getAllPlugins')
+    def getAllPlugins(self, plugin_type):
 
         """ Return a mapping segregating active / available plugins.
 
         'plugin_type' is the __name__ of the interface.
         """
-        interface = self._getInterfaceFromName( plugin_type )
+        interface = self._getInterfaceFromName(plugin_type)
 
-        active = self._getPlugins( interface )
+        active = self._getPlugins(interface)
         available = []
 
-        for id, value in aq_parent( aq_inner( self ) ).objectItems():
+        for id, value in aq_parent(aq_inner(self)).objectItems():
             if _satisfies(value, interface):
                 if id not in active:
-                    available.append( id )
+                    available.append(id)
 
         return { 'active' : active, 'available' : available }
 
 
-    security.declareProtected( ManageUsers, 'removePluginById' )
-    def removePluginById( self, plugin_id ):
+    security.declareProtected(ManageUsers, 'removePluginById')
+    def removePluginById(self, plugin_id):
 
         """ Remove a plugin from any plugin types which have it configured.
         """
         for plugin_type in self._plugin_types:
 
-            if plugin_id in self._getPlugins( plugin_type ):
-                self.deactivatePlugin( plugin_type, plugin_id )
+            if plugin_id in self._getPlugins(plugin_type):
+                self.deactivatePlugin(plugin_type, plugin_id)
 
-    security.declareProtected( ManageUsers, 'manage_plugins' )
-    manage_plugins = PageTemplateFile( 'plugins', _wwwdir )
-    security.declareProtected( ManageUsers, 'manage_active' )
-    manage_active = PageTemplateFile( 'active_plugins', _wwwdir )
-    manage_twoLists = PageTemplateFile( 'two_lists', _wwwdir )
+    security.declareProtected(ManageUsers, 'manage_plugins')
+    manage_plugins = PageTemplateFile('plugins', _wwwdir)
+    security.declareProtected(ManageUsers, 'manage_active')
+    manage_active = PageTemplateFile('active_plugins', _wwwdir)
+    manage_twoLists = PageTemplateFile('two_lists', _wwwdir)
 
-    manage_options=( ( { 'label'  : 'Plugins'
+    manage_options=(({ 'label'  : 'Plugins'
                        , 'action' : 'manage_plugins'
-                     # , 'help'   : ( 'PluggableAuthService'
+                     # , 'help'   : ('PluggableAuthService'
                      #              , 'plugins.stx')
                        }
                      , { 'label'  : 'Active'
                        , 'action' : 'manage_active'
                        }
-                     )
+                    )
                    + SimpleItem.manage_options
-                   )
+                  )
 
     if _HAS_GENERIC_SETUP:
-        security.declareProtected( ManageUsers, 'manage_exportImportForm' )
-        manage_exportImportForm = PageTemplateFile( 'export_import', _wwwdir )
+        security.declareProtected(ManageUsers, 'manage_exportImportForm')
+        manage_exportImportForm = PageTemplateFile('export_import', _wwwdir)
 
-        security.declareProtected( ManageUsers, 'getConfigAsXML' )
+        security.declareProtected(ManageUsers, 'getConfigAsXML')
         def getConfigAsXML(self):
             """ Return XML representing the registry's configuration.
             """
@@ -358,7 +339,7 @@
             pre = PluginRegistryExporter(self).__of__(self)
             return pre.generateXML()
 
-        security.declareProtected( ManageUsers, 'manage_exportImport' )
+        security.declareProtected(ManageUsers, 'manage_exportImport')
         def manage_exportImport(self, updated_xml, should_purge, RESPONSE):
             """ Parse XML and update the registry.
             """
@@ -368,33 +349,33 @@
                               '?manage_tabs_message=Registry+updated.'
                                 % self.absolute_url())
 
-        security.declareProtected( ManageUsers, 'manage_FTPget' )
+        security.declareProtected(ManageUsers, 'manage_FTPget')
         def manage_FTPget(self, REQUEST, RESPONSE):
             """
             """
             return self.getConfigAsXML()
 
-        security.declareProtected( ManageUsers, 'PUT' )
+        security.declareProtected(ManageUsers, 'PUT')
         def PUT(self, REQUEST, RESPONSE):
             """
             """
             xml = REQUEST['BODYFILE'].read()
             _updatePluginRegistry(self, xml, True)
 
-        manage_options = ( manage_options[:2]
-                         + ( { 'label' : 'Export / Import'
+        manage_options = (manage_options[:2]
+                         + ({ 'label' : 'Export / Import'
                              , 'action' : 'manage_exportImportForm'
                              },)
                          + manage_options[2:]
-                         )
+                        )
 
     #
     #   Helper methods
     #
-    security.declarePrivate( '_getPlugins' )
-    def _getPlugins( self, plugin_type ):
+    security.declarePrivate('_getPlugins')
+    def _getPlugins(self, plugin_type):
 
-        parent = aq_parent( aq_inner( self ) )
+        parent = aq_parent(aq_inner(self))
 
         if plugin_type not in self._plugin_types:
             raise KeyError, plugin_type
@@ -402,35 +383,35 @@
         if self._plugins is None:
             self._plugins = PersistentMapping()
 
-        return self._plugins.setdefault( plugin_type, () )
+        return self._plugins.setdefault(plugin_type, ())
 
-    security.declarePrivate( '_getInterfaceFromName' )
-    def _getInterfaceFromName( self, plugin_type_name ):
+    security.declarePrivate('_getInterfaceFromName')
+    def _getInterfaceFromName(self, plugin_type_name):
 
         """ Convert the string name to an interface.
 
         o Raise KeyError is no such interface is known.
         """
-        found = [ x[0] for x in self._plugin_type_info.items()
-                                if x[1][ 'id' ] == plugin_type_name ]
+        found = [x[0] for x in self._plugin_type_info.items()
+                                if x[1]['id'] == plugin_type_name]
         if not found:
             raise KeyError, plugin_type_name
 
-        if len( found ) > 1:
+        if len(found) > 1:
             raise KeyError, 'Waaa!:  %s' % plugin_type_name
 
-        return found[ 0 ]
+        return found[0]
 
-InitializeClass( PluginRegistry )
+InitializeClass(PluginRegistry)
 
-def _satisfies( plugin, iface ):
+def _satisfies(plugin, iface):
     checker = getattr(iface, 'providedBy', None)
     if checker is None: # BBB for Zope 2.7?
         checker = iface.isImplementedBy
 
     return checker(plugin)
 
-def emptyPluginRegistry( ignored ):
+def emptyPluginRegistry(ignored):
     """ Return empty registry, for filling from setup profile.
     """
     return PluginRegistry(())

Modified: Products.PluginRegistry/trunk/Products/PluginRegistry/interfaces.py
===================================================================
--- Products.PluginRegistry/trunk/Products/PluginRegistry/interfaces.py	2010-07-01 21:26:01 UTC (rev 114066)
+++ Products.PluginRegistry/trunk/Products/PluginRegistry/interfaces.py	2010-07-01 21:26:01 UTC (rev 114067)
@@ -18,7 +18,6 @@
 """
 
 from zope.interface import Interface
-_HAS_Z3_INTERFACES = True
 
 class IPluginRegistry( Interface ):
 

Modified: Products.PluginRegistry/trunk/Products/PluginRegistry/tests/test_PluginRegistry.py
===================================================================
--- Products.PluginRegistry/trunk/Products/PluginRegistry/tests/test_PluginRegistry.py	2010-07-01 21:26:01 UTC (rev 114066)
+++ Products.PluginRegistry/trunk/Products/PluginRegistry/tests/test_PluginRegistry.py	2010-07-01 21:26:01 UTC (rev 114067)
@@ -13,340 +13,373 @@
 #
 ##############################################################################
 import unittest
+
 from OFS.Folder import Folder
-
-
-from zope.interface import Interface
-
 from Acquisition import Implicit
 
-from Products.PluginRegistry.utils import directlyProvides
-
-class INonesuch(Interface):
-    pass
-
-class IFoo(Interface):
-    def foo():
-        """ Foo. """
-
-class IBar(Interface):
-    def bar():
-        """ Bar. """
-
 class DummyFolder(Folder):
     pass
 
 class DummyPlugin(Implicit):
     pass
 
-_PLUGIN_INFO = ( ( IFoo, 'IFoo', 'foo', 'Foo test' )
-               , ( IBar, 'IBar', 'bar', 'Bar test' )
-               )
 
-class PluginRegistryTests( unittest.TestCase ):
+class PluginRegistryTests(unittest.TestCase):
 
-    def _getTargetClass( self ):
+    def _getTargetClass(self):
 
         from Products.PluginRegistry.PluginRegistry import PluginRegistry
 
         return PluginRegistry
 
-    def _makeOne( self, plugin_info=_PLUGIN_INFO, *args, **kw ):
+    def _makeOne(self, plugin_info=None, *args, **kw):
 
-        return self._getTargetClass()( plugin_info, *args, **kw )
+        if plugin_info is None:
+            plugin_info, IFoo, IBar = self._makePluginInfo()
 
-    def test_conformance_to_IPluginRegistry( self ):
+        return self._getTargetClass()(plugin_info, *args, **kw)
 
-        from Products.PluginRegistry.interfaces import IPluginRegistry
-        from Products.PluginRegistry.interfaces import _HAS_Z3_INTERFACES
+    def _makePluginInfo(self):
 
+        from zope.interface import Interface
+
+        class IFoo(Interface):
+            def foo():
+                """ Foo. """
+
+        class IBar(Interface):
+            def bar():
+                """ Bar. """
+
+        _PLUGIN_INFO = ((IFoo, 'IFoo', 'foo', 'Foo test'),
+                        (IBar, 'IBar', 'bar', 'Bar test'),
+                       )
+
+        return _PLUGIN_INFO, IFoo, IBar
+
+    def test_class_conforms_to_IPluginRegistry(self):
         from zope.interface.verify import verifyClass
+        from Products.PluginRegistry.interfaces import IPluginRegistry
+        verifyClass(IPluginRegistry, self._getTargetClass())
 
-        verifyClass( IPluginRegistry, self._getTargetClass() )
+    def test_instance_conforms_to_IPluginRegistry(self):
+        from zope.interface.verify import verifyObject
+        from Products.PluginRegistry.interfaces import IPluginRegistry
+        verifyObject(IPluginRegistry, self._makeOne())
 
-    def test_empty( self ):
+    def test_listPlugins_miss(self):
+        from zope.interface import Interface
 
-        preg = self._makeOne()
+        class INonesuch(Interface):
+            pass
 
-        self.assertRaises( KeyError, preg.listPlugins, INonesuch )
-        self.assertEqual( len( preg.listPlugins( IFoo ) ), 0 )
-        self.assertEqual( len( preg.listPluginIds( IFoo ) ), 0 )
+        preg = self._makeOne(())
+        self.assertRaises(KeyError, preg.listPlugins, INonesuch)
 
-    def test_listPluginTypeInfo( self ):
+    def test_listPluginIds_miss(self):
+        from zope.interface import Interface
 
-        pref = self._makeOne()
+        class INonesuch(Interface):
+            pass
 
-        pti = pref.listPluginTypeInfo()
-        self.assertEqual( pti[0]['interface'], IFoo )
-        self.assertEqual( pti[1]['title'], 'bar' )
+        preg = self._makeOne(())
+        self.assertRaises(KeyError, preg.listPluginIds, INonesuch)
 
-    def test_activatePluginNoChild( self ):
+    def test_listPlugins_hit(self):
+        plugin_info, IFoo, IBar = self._makePluginInfo()
+        preg = self._makeOne(plugin_info)
+        self.assertEqual(len(preg.listPluginIds(IFoo)), 0)
 
-        parent = DummyFolder()
+    def test_listPluginIds_hit(self):
+        plugin_info, IFoo, IBar = self._makePluginInfo()
+        preg = self._makeOne(plugin_info)
+        self.assertEqual(len(preg.listPluginIds(IFoo)), 0)
 
-        preg = self._makeOne().__of__(parent)
+    def test_listPluginTypeInfo_empty(self):
+        pref = self._makeOne(())
 
-        self.assertRaises( AttributeError, preg.activatePlugin, IFoo,
-                           'foo_plugin' )
+        pti = pref.listPluginTypeInfo()
+        self.assertEqual(len(pti), 0)
 
-    def test_activatePluginInterfaceNonconformance( self ):
+    def test_listPluginTypeInfo_filled(self):
+        plugin_info, IFoo, IBar = self._makePluginInfo()
+        pref = self._makeOne(plugin_info)
 
+        pti = pref.listPluginTypeInfo()
+        self.assertEqual(len(pti), 2)
+        self.assertEqual(pti[0]['interface'], IFoo)
+        self.assertEqual(pti[0]['title'], 'foo')
+        self.assertEqual(pti[1]['interface'], IBar)
+        self.assertEqual(pti[1]['title'], 'bar')
+
+    def test_activatePlugin_no_child(self):
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
-        foo_plugin = DummyPlugin()
-        parent._setObject( 'foo_plugin', foo_plugin )
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg = self._makeOne().__of__(parent)
+        self.assertRaises(AttributeError, preg.activatePlugin, IFoo,
+                           'foo_plugin')
 
-        self.assertRaises( ValueError, preg.activatePlugin, IFoo,
-                           'foo_plugin' )
+    def test_activatePluginInterface_non_conforming_interface(self):
+        plugin_info, IFoo, IBar = self._makePluginInfo()
+        parent = DummyFolder()
+        foo_plugin = DummyPlugin()
+        parent._setObject('foo_plugin', foo_plugin)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-    def test_activatePlugin( self ):
+        self.assertRaises(ValueError, preg.activatePlugin, IFoo, 'foo_plugin')
 
+    def test_activatePlugin_valid_child(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin,  ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin,  (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'foo_plugin')
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 1 )
-        self.assertEqual( idlist[0], 'foo_plugin' )
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 1)
+        self.assertEqual(idlist[0], 'foo_plugin')
 
-        plugins = preg.listPlugins( IFoo )
-        self.assertEqual( len( plugins ), 1 )
+        plugins = preg.listPlugins(IFoo)
+        self.assertEqual(len(plugins), 1)
         plugin = plugins[0]
-        self.assertEqual( plugin[0], 'foo_plugin' )
-        self.assertEqual( plugin[1], preg.foo_plugin )
+        self.assertEqual(plugin[0], 'foo_plugin')
+        self.assertEqual(plugin[1], preg.foo_plugin)
 
-    def test_activatePlugin_then_remove_interface( self ):
-
+    def test_activatePlugin_then_remove_interface(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin,  ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin,  (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'foo_plugin')
 
         replacement = DummyPlugin()
-        parent._delObject( 'foo_plugin' )
-        parent._setObject( 'foo_plugin', replacement )
+        parent._delObject('foo_plugin')
+        parent._setObject('foo_plugin', replacement)
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 1 )  # note discrepancy
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 1)  # note discrepancy
 
-        plugins = preg.listPlugins( IFoo )
-        self.assertEqual( len( plugins ), 0 )
+        plugins = preg.listPlugins(IFoo)
+        self.assertEqual(len(plugins), 0)
 
-    def test_deactivatePlugin( self ):
-
+    def test_deactivatePlugin(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin, ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin, (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
         bar_plugin = DummyPlugin()
-        directlyProvides( bar_plugin, ( IFoo, ) )
-        parent._setObject( 'bar_plugin', bar_plugin )
+        directlyProvides(bar_plugin, (IFoo,))
+        parent._setObject('bar_plugin', bar_plugin)
 
         baz_plugin = DummyPlugin()
-        directlyProvides( baz_plugin, ( IFoo, ) )
-        parent._setObject( 'baz_plugin', baz_plugin )
+        directlyProvides(baz_plugin, (IFoo,))
+        parent._setObject('baz_plugin', baz_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin' )
-        preg.activatePlugin( IFoo, 'bar_plugin' )
-        preg.activatePlugin( IFoo, 'baz_plugin' )
+        preg.activatePlugin(IFoo, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'bar_plugin')
+        preg.activatePlugin(IFoo, 'baz_plugin')
 
-        preg.deactivatePlugin( IFoo, 'bar_plugin' )
+        preg.deactivatePlugin(IFoo, 'bar_plugin')
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 2 )
-        self.assertEqual( idlist[0], 'foo_plugin' )
-        self.assertEqual( idlist[1], 'baz_plugin' )
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 2)
+        self.assertEqual(idlist[0], 'foo_plugin')
+        self.assertEqual(idlist[1], 'baz_plugin')
 
-    def test_movePluginsUp( self ):
-
+    def test_movePluginsUp(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin, ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin, (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
         bar_plugin = DummyPlugin()
-        directlyProvides( bar_plugin, ( IFoo, ) )
-        parent._setObject( 'bar_plugin', bar_plugin )
+        directlyProvides(bar_plugin, (IFoo,))
+        parent._setObject('bar_plugin', bar_plugin)
 
         baz_plugin = DummyPlugin()
-        directlyProvides( baz_plugin, ( IFoo, ) )
-        parent._setObject( 'baz_plugin', baz_plugin )
+        directlyProvides(baz_plugin, (IFoo,))
+        parent._setObject('baz_plugin', baz_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin' )
-        preg.activatePlugin( IFoo, 'bar_plugin' )
-        preg.activatePlugin( IFoo, 'baz_plugin' )
+        preg.activatePlugin(IFoo, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'bar_plugin')
+        preg.activatePlugin(IFoo, 'baz_plugin')
 
-        self.assertRaises( ValueError, preg.movePluginsUp
-                         , IFoo, ( 'quux_plugin', ) )
+        self.assertRaises(ValueError,
+                          preg.movePluginsUp, IFoo, ('quux_plugin',))
 
-        preg.movePluginsUp( IFoo, ( 'bar_plugin', 'baz_plugin' ) )
+        preg.movePluginsUp(IFoo, ('bar_plugin', 'baz_plugin'))
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 3 )
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 3)
 
-        self.assertEqual( idlist[0], 'bar_plugin' )
-        self.assertEqual( idlist[1], 'baz_plugin' )
-        self.assertEqual( idlist[2], 'foo_plugin' )
+        self.assertEqual(idlist[0], 'bar_plugin')
+        self.assertEqual(idlist[1], 'baz_plugin')
+        self.assertEqual(idlist[2], 'foo_plugin')
 
         # Moving the top plugin up should not change anything.
-        preg.movePluginsUp( IFoo, ( 'bar_plugin', ) )
-        idlist = preg.listPluginIds( IFoo )
+        preg.movePluginsUp(IFoo, ('bar_plugin',))
+        idlist = preg.listPluginIds(IFoo)
         self.assertEqual(idlist, 
                          ('bar_plugin', 'baz_plugin', 'foo_plugin'))
 
         # Moving the top plugin and another one could change something.
-        preg.movePluginsUp( IFoo, ( 'bar_plugin', 'foo_plugin' ) )
-        idlist = preg.listPluginIds( IFoo )
+        preg.movePluginsUp(IFoo, ('bar_plugin', 'foo_plugin'))
+        idlist = preg.listPluginIds(IFoo)
         self.assertEqual(idlist, 
                          ('bar_plugin', 'foo_plugin', 'baz_plugin'))
 
 
-    def test_movePluginsDown( self ):
-
+    def test_movePluginsDown(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin, ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin, (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
         bar_plugin = DummyPlugin()
-        directlyProvides( bar_plugin, ( IFoo, ) )
-        parent._setObject( 'bar_plugin', bar_plugin )
+        directlyProvides(bar_plugin, (IFoo,))
+        parent._setObject('bar_plugin', bar_plugin)
 
         baz_plugin = DummyPlugin()
-        directlyProvides( baz_plugin, ( IFoo, ) )
-        parent._setObject( 'baz_plugin', baz_plugin )
+        directlyProvides(baz_plugin, (IFoo,))
+        parent._setObject('baz_plugin', baz_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin' )
-        preg.activatePlugin( IFoo, 'bar_plugin' )
-        preg.activatePlugin( IFoo, 'baz_plugin' )
+        preg.activatePlugin(IFoo, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'bar_plugin')
+        preg.activatePlugin(IFoo, 'baz_plugin')
 
-        self.assertRaises( ValueError, preg.movePluginsDown
-                         , IFoo, ( 'quux_plugin', ) )
+        self.assertRaises(ValueError, preg.movePluginsDown
+                         , IFoo, ('quux_plugin',))
 
-        preg.movePluginsDown( IFoo, ( 'foo_plugin', 'bar_plugin' ) )
+        preg.movePluginsDown(IFoo, ('foo_plugin', 'bar_plugin'))
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 3 )
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 3)
 
-        self.assertEqual( idlist[0], 'baz_plugin' )
-        self.assertEqual( idlist[1], 'foo_plugin' )
-        self.assertEqual( idlist[2], 'bar_plugin' )
+        self.assertEqual(idlist[0], 'baz_plugin')
+        self.assertEqual(idlist[1], 'foo_plugin')
+        self.assertEqual(idlist[2], 'bar_plugin')
 
         # Moving the lowest plugin down should not change anything.
-        preg.movePluginsDown( IFoo, ( 'bar_plugin', ) )
-        idlist = preg.listPluginIds( IFoo )
+        preg.movePluginsDown(IFoo, ('bar_plugin',))
+        idlist = preg.listPluginIds(IFoo)
         self.assertEqual(idlist, 
                          ('baz_plugin', 'foo_plugin', 'bar_plugin'))
 
         # Moving the lowest plugin and another one could change something.
-        preg.movePluginsDown( IFoo, ( 'bar_plugin', 'baz_plugin' ) )
-        idlist = preg.listPluginIds( IFoo )
+        preg.movePluginsDown(IFoo, ('bar_plugin', 'baz_plugin'))
+        idlist = preg.listPluginIds(IFoo)
         self.assertEqual(idlist, 
                          ('foo_plugin', 'baz_plugin', 'bar_plugin'))
 
-    def test_getAllPlugins( self ):
-
+    def test_getAllPlugins(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin, ( IFoo, ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin, (IFoo,))
+        parent._setObject('foo_plugin', foo_plugin)
 
         bar_plugin = DummyPlugin()
-        directlyProvides( bar_plugin, ( IFoo, ) )
-        parent._setObject( 'bar_plugin', bar_plugin )
+        directlyProvides(bar_plugin, (IFoo,))
+        parent._setObject('bar_plugin', bar_plugin)
 
         baz_plugin = DummyPlugin()
-        directlyProvides( baz_plugin, ( IFoo, ) )
-        parent._setObject( 'baz_plugin', baz_plugin )
+        directlyProvides(baz_plugin, (IFoo,))
+        parent._setObject('baz_plugin', baz_plugin)
 
-        preg = self._makeOne().__of__( parent )
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        first = preg.getAllPlugins( 'IFoo' )
+        first = preg.getAllPlugins('IFoo')
 
-        self.assertEqual( len( first[ 'active' ] ), 0 )
+        self.assertEqual(len(first['active']), 0)
 
-        self.assertEqual( len( first[ 'available' ] ), 3 )
-        self.failUnless( 'foo_plugin' in first[ 'available' ] )
-        self.failUnless( 'bar_plugin' in first[ 'available' ] )
-        self.failUnless( 'baz_plugin' in first[ 'available' ] )
+        self.assertEqual(len(first['available']), 3)
+        self.failUnless('foo_plugin' in first['available'])
+        self.failUnless('bar_plugin' in first['available'])
+        self.failUnless('baz_plugin' in first['available'])
 
-        preg.activatePlugin( IFoo, 'foo_plugin' )
+        preg.activatePlugin(IFoo, 'foo_plugin')
 
-        second = preg.getAllPlugins( 'IFoo' )
+        second = preg.getAllPlugins('IFoo')
 
-        self.assertEqual( len( second[ 'active' ] ), 1 )
-        self.failUnless( 'foo_plugin' in second[ 'active' ] )
+        self.assertEqual(len(second['active']), 1)
+        self.failUnless('foo_plugin' in second['active'])
 
-        self.assertEqual( len( second[ 'available' ] ), 2 )
-        self.failIf( 'foo_plugin' in second[ 'available' ] )
-        self.failUnless( 'bar_plugin' in second[ 'available' ] )
-        self.failUnless( 'baz_plugin' in second[ 'available' ] )
+        self.assertEqual(len(second['available']), 2)
+        self.failIf('foo_plugin' in second['available'])
+        self.failUnless('bar_plugin' in second['available'])
+        self.failUnless('baz_plugin' in second['available'])
 
-        preg.activatePlugin( IFoo, 'bar_plugin' )
-        preg.activatePlugin( IFoo, 'baz_plugin' )
+        preg.activatePlugin(IFoo, 'bar_plugin')
+        preg.activatePlugin(IFoo, 'baz_plugin')
 
-        third = preg.getAllPlugins( 'IFoo' )
+        third = preg.getAllPlugins('IFoo')
 
-        self.assertEqual( len( third[ 'active' ] ), 3 )
-        self.failUnless( 'foo_plugin' in third[ 'active' ] )
-        self.failUnless( 'bar_plugin' in third[ 'active' ] )
-        self.failUnless( 'baz_plugin' in third[ 'active' ] )
+        self.assertEqual(len(third['active']), 3)
+        self.failUnless('foo_plugin' in third['active'])
+        self.failUnless('bar_plugin' in third['active'])
+        self.failUnless('baz_plugin' in third['active'])
 
-        self.assertEqual( len( third[ 'available' ] ), 0 )
+        self.assertEqual(len(third['available']), 0)
 
-    def test_removePluginById( self ):
-
+    def test_removePluginById(self):
+        from zope.interface import directlyProvides
+        plugin_info, IFoo, IBar = self._makePluginInfo()
         parent = DummyFolder()
         foo_plugin = DummyPlugin()
-        directlyProvides( foo_plugin, ( IFoo, IBar ) )
-        parent._setObject( 'foo_plugin', foo_plugin )
+        directlyProvides(foo_plugin, (IFoo, IBar))
+        parent._setObject('foo_plugin', foo_plugin)
 
         bar_plugin = DummyPlugin()
-        directlyProvides( bar_plugin, ( IFoo, ) )
-        parent._setObject( 'bar_plugin', bar_plugin )
+        directlyProvides(bar_plugin, (IFoo,))
+        parent._setObject('bar_plugin', bar_plugin)
 
         baz_plugin = DummyPlugin()
-        directlyProvides( baz_plugin, ( IBar, ) )
-        parent._setObject( 'baz_plugin', baz_plugin )
+        directlyProvides(baz_plugin, (IBar,))
+        parent._setObject('baz_plugin', baz_plugin)
 
-        preg = self._makeOne().__of__(parent)
+        preg = self._makeOne(plugin_info).__of__(parent)
 
-        preg.activatePlugin( IFoo, 'foo_plugin' )
-        preg.activatePlugin( IBar, 'foo_plugin' )
-        preg.activatePlugin( IFoo, 'bar_plugin' )
-        preg.activatePlugin( IBar, 'baz_plugin' )
+        preg.activatePlugin(IFoo, 'foo_plugin')
+        preg.activatePlugin(IBar, 'foo_plugin')
+        preg.activatePlugin(IFoo, 'bar_plugin')
+        preg.activatePlugin(IBar, 'baz_plugin')
 
-        preg.removePluginById( 'foo_plugin' )
+        preg.removePluginById('foo_plugin')
 
-        idlist = preg.listPluginIds( IFoo )
-        self.assertEqual( len( idlist ), 1 )
-        self.assertEqual( idlist[0], 'bar_plugin' )
+        idlist = preg.listPluginIds(IFoo)
+        self.assertEqual(len(idlist), 1)
+        self.assertEqual(idlist[0], 'bar_plugin')
 
-        idlist = preg.listPluginIds( IBar )
-        self.assertEqual( len( idlist ), 1 )
-        self.assertEqual( idlist[0], 'baz_plugin' )
+        idlist = preg.listPluginIds(IBar)
+        self.assertEqual(len(idlist), 1)
+        self.assertEqual(idlist[0], 'baz_plugin')
 
-if __name__ == "__main__":
-    unittest.main()
-
 def test_suite():
     return unittest.TestSuite((
-        unittest.makeSuite( PluginRegistryTests ),
-        ))
+        unittest.makeSuite(PluginRegistryTests),
+    ))

Modified: Products.PluginRegistry/trunk/Products/PluginRegistry/utils.py
===================================================================
--- Products.PluginRegistry/trunk/Products/PluginRegistry/utils.py	2010-07-01 21:26:01 UTC (rev 114066)
+++ Products.PluginRegistry/trunk/Products/PluginRegistry/utils.py	2010-07-01 21:26:01 UTC (rev 114067)
@@ -17,9 +17,6 @@
 
 from App.Common import package_home
 
-from zope.interface import directlyProvides
-
-
 product_dir = package_home( globals() )
 product_prefix = os.path.join( os.path.split(product_dir)[:-1] )
 



More information about the checkins mailing list