[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