[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - converted three more tools

Yvo Schubbe y.2011 at wcm-solutions.de
Fri Sep 16 07:18:39 EST 2011


Log message for revision 122820:
  - converted three more tools

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
  U   Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/FSObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
  UU  Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
  UU  Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
  UU  Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
  UU  Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py
  UU  Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-09-16 12:18:39 UTC (rev 122820)
@@ -5,8 +5,9 @@
 ------------------------
 
 - tools: Converted several tools into utilities.
-  ActionsTool, CookieCrumbler, MemberDataTool, MembershipTool, RegistrationTool
-  and URLTool are now local utilities.
+  ActionsTool, CatalogTool, CookieCrumbler, MemberDataTool, MembershipTool,
+  RegistrationTool, SkinsTool, URLTool and WorkflowTool are now local
+  utilities.
 
 - MemberDataTool: Changed property modes to 'w' and added 'fullname' property.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -23,6 +23,7 @@
 from ExtensionClass import Base
 from OFS.interfaces import IObjectClonedEvent
 from OFS.interfaces import IObjectWillBeMovedEvent
+from zope.component import queryUtility
 from zope.component import subscribers
 from zope.container.interfaces import IObjectAddedEvent
 from zope.container.interfaces import IObjectMovedEvent
@@ -32,13 +33,14 @@
 
 from Products.CMFCore.interfaces import ICallableOpaqueItem
 from Products.CMFCore.interfaces import ICatalogAware
+from Products.CMFCore.interfaces import ICatalogTool
 from Products.CMFCore.interfaces import IOpaqueItemManager
 from Products.CMFCore.interfaces import IWorkflowAware
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.permissions import AccessContentsInformation
 from Products.CMFCore.permissions import ManagePortal
 from Products.CMFCore.permissions import ModifyPortalContent
 from Products.CMFCore.utils import _dtmldir
-from Products.CMFCore.utils import getToolByName
 
 logger = logging.getLogger('CMFCore.CMFCatalogAware')
 
@@ -55,7 +57,7 @@
     # The following method can be overridden using inheritance so that it's
     # possible to specify another catalog tool for a given content type
     def _getCatalogTool(self):
-        return getToolByName(self, 'portal_catalog', None)
+        return queryUtility(ICatalogTool)
 
     #
     #   'ICatalogAware' interface methods
@@ -145,14 +147,14 @@
         """ Tab displaying the current workflows for the content object.
         """
         ob = self
-        wftool = self._getWorkflowTool()
+        wtool = self._getWorkflowTool()
         # XXX None ?
-        if wftool is not None:
-            wf_ids = wftool.getChainFor(ob)
+        if wtool is not None:
+            wf_ids = wtool.getChainFor(ob)
             states = {}
             chain = []
             for wf_id in wf_ids:
-                wf = wftool.getWorkflowById(wf_id)
+                wf = wtool.getWorkflowById(wf_id)
                 if wf is not None:
                     # XXX a standard API would be nice
                     if hasattr(wf, 'getReviewStateOf'):
@@ -175,7 +177,7 @@
     # The following method can be overridden using inheritance so that it's
     # possible to specify another workflow tool for a given content type
     def _getWorkflowTool(self):
-        return getToolByName(self, 'portal_workflow', None)
+        return queryUtility(IWorkflowTool)
 
     #
     #   'IWorkflowAware' interface methods
@@ -184,9 +186,9 @@
     def notifyWorkflowCreated(self):
         """ Notify the workflow that the object was just created.
         """
-        wftool = self._getWorkflowTool()
-        if wftool is not None:
-            wftool.notifyCreated(self)
+        wtool = self._getWorkflowTool()
+        if wtool is not None:
+            wtool.notifyCreated(self)
 
 InitializeClass(WorkflowAware)
 

Modified: Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,9 +22,10 @@
 from DateTime.DateTime import DateTime
 from Products.PluginIndexes.common import safe_callable
 from Products.ZCatalog.ZCatalog import ZCatalog
-from zope.interface import implements
 from zope.component import adapts
 from zope.component import queryMultiAdapter
+from zope.component import queryUtility
+from zope.interface import implements
 from zope.interface import providedBy
 from zope.interface.declarations import getObjectSpecification
 from zope.interface.declarations import ObjectSpecification
@@ -32,18 +33,20 @@
 
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
 from Products.CMFCore.interfaces import ICatalogTool
+from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IIndexableObject
 from Products.CMFCore.interfaces import IIndexableObjectWrapper
-from Products.CMFCore.interfaces import IIndexableObject
-from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.permissions import AccessInactivePortalContent
 from Products.CMFCore.permissions import ManagePortal
 from Products.CMFCore.permissions import View
 from Products.CMFCore.utils import _checkPermission
 from Products.CMFCore.utils import _dtmldir
 from Products.CMFCore.utils import _mergedLocalRoles
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import registerToolInterface
 from Products.CMFCore.utils import UniqueObject
 
+
 class IndexableObjectSpecification(ObjectSpecificationDescriptor):
 
     # This class makes the wrapper transparent, adapter lookup is
@@ -66,9 +69,9 @@
 
     def __init__(self, ob, catalog):
         # look up the workflow variables for the object
-        wftool = getToolByName(catalog, 'portal_workflow', None)
-        if wftool is not None:
-            self.__vars = wftool.getCatalogVariablesFor(ob)
+        wtool = queryUtility(IWorkflowTool)
+        if wtool is not None:
+            self.__vars = wtool.getCatalogVariablesFor(ob)
         else:
             self.__vars = {}
         self.__ob = ob
@@ -301,3 +304,4 @@
         self.catalog_object(object, uid, idxs, update_metadata)
 
 InitializeClass(CatalogTool)
+registerToolInterface('portal_catalog', ICatalogTool)

Modified: Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,9 +22,11 @@
 from DateTime.DateTime import DateTime
 from OFS.SimpleItem import SimpleItem
 from zope.component import getUtility
+from zope.component import queryUtility
 from zope.interface import implements
 
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import ICatalogTool
 from Products.CMFCore.interfaces import IMembershipTool
 from Products.CMFCore.interfaces import IOldstyleDiscussable
 from Products.CMFCore.interfaces import IOldstyleDiscussionTool
@@ -33,7 +35,6 @@
 from Products.CMFCore.permissions import ReplyToItem
 from Products.CMFCore.permissions import View
 from Products.CMFCore.utils import _dtmldir
-from Products.CMFCore.utils import getToolByName
 from Products.CMFCore.utils import UniqueObject
 
 
@@ -89,8 +90,9 @@
             Often, the actual objects are not needed.  This is less expensive
             than fetching the objects.
         """
-        catalog = getToolByName(self.content, 'portal_catalog')
-        return catalog.searchResults(in_reply_to=
+        ctool = queryUtility(ICatalogTool)
+        if ctool is not None:
+            return ctool.searchResults(in_reply_to=
                                       urllib.unquote('/'+self.absolute_url(1)))
 
     security.declareProtected(View, 'getReplies')
@@ -99,11 +101,12 @@
             Return a sequence of the DiscussionResponse objects which are
             associated with this Discussable
         """
-        catalog = getToolByName(self.content, 'portal_catalog')
-        results = self.getReplyResults()
-        rids    = map(lambda x: x.data_record_id_, results)
-        objects = map(catalog.getobject, rids)
-        return objects
+        ctool = queryUtility(ICatalogTool)
+        if ctool is not None:
+            results = self.getReplyResults()
+            rids = map(lambda x: x.data_record_id_, results)
+            objects = map(ctool.getobject, rids)
+            return objects
 
     def quotedContents(self):
         """

Modified: Products.CMFCore/trunk/Products/CMFCore/FSObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSObject.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/FSObject.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -29,11 +29,12 @@
 from OFS.role import RoleManager
 from OFS.SimpleItem import Item
 from Products.PythonScripts.standard import html_quote
+from zope.component import getUtility
 
+from Products.CMFCore.interfaces import ISkinsTool
 from Products.CMFCore.permissions import ManagePortal
 from Products.CMFCore.permissions import View
 from Products.CMFCore.permissions import ViewManagementScreens
-from Products.CMFCore.utils import getToolByName
 
 
 class FSObject(Implicit, Item, RoleManager, Cacheable):
@@ -115,16 +116,10 @@
                 # The permission was invalid, never mind
                 pass
 
-        skins_tool_namegetter = getattr(self, 'getSkinsFolderName', None)
-        if skins_tool_namegetter is not None:
-            skins_tool_name = skins_tool_namegetter()
-        else:
-            skins_tool_name = 'portal_skins'
-
         id = obj.getId()
         fpath = tuple(folder_path.split('/'))
         if root is None:
-            portal_skins = getToolByName(self, skins_tool_name)
+            portal_skins = getUtility(ISkinsTool)
         else:
             portal_skins = root
         if folder_path == '.':

Modified: Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -28,6 +28,7 @@
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.PythonScripts.PythonScript import PythonScript
 from zope.component import getUtility
+from zope.globalrequest import getRequest
 from zope.interface import implements
 
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
@@ -42,6 +43,7 @@
 from Products.CMFCore.permissions import View
 from Products.CMFCore.SkinsContainer import SkinsContainer
 from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import registerToolInterface
 from Products.CMFCore.utils import UniqueObject
 
 def modifiedOptions():
@@ -304,14 +306,12 @@
     def updateSkinCookie(self):
         """ If needed, updates the skin cookie based on the member preference.
         """
-        # XXX: this method violates the rules for tools/utilities:
-        # it uses self.REQUEST
         mtool = getUtility(IMembershipTool)
         member = mtool.getAuthenticatedMember()
         if hasattr(aq_base(member), 'getProperty'):
             mskin = member.getProperty('portal_skin')
             if mskin:
-                req = self.REQUEST
+                req = getRequest()
                 cookie = req.cookies.get(self.request_varname, None)
                 if cookie != mskin:
                     resp = req.RESPONSE
@@ -340,9 +340,7 @@
     def clearSkinCookie(self):
         """ Expire the skin cookie.
         """
-        # XXX: this method violates the rules for tools/utilities:
-        # it uses self.REQUEST
-        req = self.REQUEST
+        req = getRequest()
         resp = req.RESPONSE
         utool = getUtility(IURLTool)
         portal_path = req['BASEPATH1'] + '/' + utool(1)
@@ -395,3 +393,4 @@
         return res
 
 InitializeClass(SkinsTool)
+registerToolInterface('portal_skins', ISkinsTool)

Modified: Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/TypesTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/TypesTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,8 +11,6 @@
 #
 ##############################################################################
 """ Type registration tool.
-
-$Id$
 """
 
 import logging
@@ -45,6 +43,7 @@
 from Products.CMFCore.interfaces import IAction
 from Products.CMFCore.interfaces import ITypeInformation
 from Products.CMFCore.interfaces import ITypesTool
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.permissions import AccessContentsInformation
 from Products.CMFCore.permissions import AddPortalContent
 from Products.CMFCore.permissions import ManagePortal
@@ -52,7 +51,6 @@
 from Products.CMFCore.utils import _checkPermission
 from Products.CMFCore.utils import _dtmldir
 from Products.CMFCore.utils import _wwwdir
-from Products.CMFCore.utils import getToolByName
 from Products.CMFCore.utils import SimpleItemWithProperties
 from Products.CMFCore.utils import UniqueObject
 
@@ -354,10 +352,10 @@
     def _checkWorkflowAllowed(self, container):
         """ Check if a workflow veto object creation
         """
-        wtool = getToolByName(self, 'portal_workflow', None)
+        wtool = queryUtility(IWorkflowTool)
         if wtool is None:
             return True
-        
+
         type_id = self.getId()
         workflows = wtool.getWorkflowsFor(type_id)
         for workflow in workflows:
@@ -369,9 +367,9 @@
 
             if not guard(container, type_id):
                 return False
-        
-        return True        
 
+        return True
+
     #
     #   'IAction' interface methods
     #


Property changes on: Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
___________________________________________________________________
Deleted: svn:keywords
   - Author Date Id Revision

Modified: Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,27 +11,27 @@
 #
 ##############################################################################
 """ Basic workflow tool.
-
-$Id$
 """
 
 import sys
 
-from AccessControl.SecurityInfo import ClassSecurityInfo
 from AccessControl.requestmethod import postonly
+from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import aq_base, aq_inner, aq_parent
 from App.class_init import InitializeClass
 from App.special_dtml import DTMLFile
 from OFS.Folder import Folder
 from OFS.ObjectManager import IFAwareObjectManager
 from Persistence import PersistentMapping
-from zope.event import notify
-from zope.interface import implements
-from zope.interface import implementer
-from zope.component import adapts
 from zope.component import adapter
+from zope.component import adapts
 from zope.component import getMultiAdapter
 from zope.component import queryMultiAdapter
+from zope.event import notify
+from zope.globalrequest import getRequest
+from zope.interface import implementer
+from zope.interface import implements
+from ZPublisher.BaseRequest import RequestContainer
 
 from Products.CMFCore.ActionProviderBase import ActionProviderBase
 from Products.CMFCore.interfaces import IConfigurableWorkflowTool
@@ -44,6 +44,7 @@
 from Products.CMFCore.utils import _dtmldir
 from Products.CMFCore.utils import getToolByName
 from Products.CMFCore.utils import Message as _
+from Products.CMFCore.utils import registerToolInterface
 from Products.CMFCore.utils import UniqueObject
 from Products.CMFCore.WorkflowCore import ActionRaisedExceptionEvent
 from Products.CMFCore.WorkflowCore import ActionSucceededEvent
@@ -469,13 +470,11 @@
     def getDefaultChainFor(self, ob):
         """ Get the default chain, if applicable, for ob.
         """
-        # XXX: this method violates the rules for tools/utilities:
-        # it depends on a non-utility tool
-        types_tool = getToolByName( self, 'portal_types', None )
-        if ( types_tool is not None
-            and types_tool.getTypeInfo( ob ) is not None ):
+        request_container = RequestContainer(REQUEST=getRequest())
+        rich_context = self.__of__(request_container)
+        ttool = getToolByName(rich_context, 'portal_types', None)
+        if ttool is not None and ttool.getTypeInfo(ob) is not None:
             return self._default_chain
-
         return ()
 
     security.declarePrivate('getWorkflowIds')
@@ -503,18 +502,16 @@
     #
     #   Helper methods
     #
-    security.declarePrivate( '_listTypeInfo' )
+    security.declarePrivate('_listTypeInfo')
     def _listTypeInfo(self):
-
         """ List the portal types which are available.
         """
-        # XXX: this method violates the rules for tools/utilities:
-        # it depends on a non-utility tool
-        pt = getToolByName(self, 'portal_types', None)
-        if pt is None:
-            return ()
-        else:
-            return pt.listTypeInfo()
+        request_container = RequestContainer(REQUEST=getRequest())
+        rich_context = self.__of__(request_container)
+        ttool = getToolByName(rich_context, 'portal_types', None)
+        if ttool is not None:
+            return ttool.listTypeInfo()
+        return ()
 
     security.declarePrivate( '_invokeWithNotification' )
     def _invokeWithNotification(self, wfs, ob, action, func, args, kw):
@@ -617,6 +614,7 @@
             ob.reindexObjectSecurity()
 
 InitializeClass(WorkflowTool)
+registerToolInterface('portal_workflow', IWorkflowTool)
 
 
 class DefaultWorkflowStatus(object):


Property changes on: Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
___________________________________________________________________
Deleted: svn:keywords
   - Author Date Id Revision

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,21 +11,21 @@
 #
 ##############################################################################
 """Catalog tool setup handlers.
-
-$Id$
 """
 
+from zope.component import getSiteManager
+
 from Products.GenericSetup.utils import exportObjects
 from Products.GenericSetup.utils import importObjects
 
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.interfaces import ICatalogTool
 
 
 def importCatalogTool(context):
     """Import catalog tool.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_catalog', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ICatalogTool)
     if tool is None:
         logger = context.getLogger('catalog')
         logger.debug('Nothing to import.')
@@ -36,8 +36,8 @@
 def exportCatalogTool(context):
     """Export catalog tool.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_catalog', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ICatalogTool)
     if tool is None:
         logger = context.getLogger('catalog')
         logger.debug('Nothing to export.')


Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,13 +11,12 @@
 #
 ##############################################################################
 """Skins tool xml adapters and setup handlers.
-
-$Id$
 """
 
 from Acquisition import aq_inner
 from Acquisition import aq_parent
 from zope.component import adapts
+from zope.component import getSiteManager
 
 from Products.GenericSetup.interfaces import ISetupEnviron
 from Products.GenericSetup.utils import exportObjects
@@ -28,7 +27,6 @@
 
 from Products.CMFCore.interfaces import IDirectoryView
 from Products.CMFCore.interfaces import ISkinsTool
-from Products.CMFCore.utils import getToolByName
 
 
 class DirectoryViewNodeAdapter(NodeAdapterBase):
@@ -152,7 +150,7 @@
                             if oldpath.index(layer) == 0:
                                 layernode.setAttribute('insert-before', '*')
                             else:
-                                pos = oldpath[oldpath.index(layer)-1]
+                                pos = oldpath[oldpath.index(layer) - 1]
                                 layernode.setAttribute('insert-after', pos)
                             child.insertBefore(layernode, newlayerstart)
                 path = self._updatePath(path, child)
@@ -196,7 +194,7 @@
                 else:
                     try:
                         index = path.index(insert_after)
-                        path.insert(index+1, layer_name)
+                        path.insert(index + 1, layer_name)
                         continue
                     except ValueError:
                         pass
@@ -204,7 +202,7 @@
             if not child.hasAttribute('remove'):
                 path.append(layer_name)
 
-        return str( ','.join(path) )
+        return str(','.join(path))
 
 
     def _removeSkin(self, skin_name=None):
@@ -213,14 +211,14 @@
         """
         skins = self.context.getSkinSelections()
         if skin_name in skins:
-            self.context.manage_skinLayers(chosen=[skin_name], del_skin=1, )
+            self.context.manage_skinLayers(chosen=[skin_name], del_skin=1,)
 
 
 def importSkinsTool(context):
     """Import skins tool FSDirViews and skin paths from an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_skins', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ISkinsTool)
     if tool is None:
         logger = context.getLogger('skins')
         logger.debug('Nothing to import.')
@@ -231,8 +229,8 @@
 def exportSkinsTool(context):
     """Export skins tool FSDVs and skin paths as an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_skins', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ISkinsTool)
     if tool is None:
         logger = context.getLogger('skins')
         logger.debug('Nothing to export.')


Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,12 +22,14 @@
 from Products.ZCTextIndex.Lexicon import Splitter
 from Products.ZCTextIndex.Lexicon import StopWordRemover
 from Products.ZCTextIndex.ZCTextIndex import PLexicon
+from zope.component import getSiteManager
 
 from Products.GenericSetup.tests.common import BaseRegistryTests
 from Products.GenericSetup.tests.common import DummyExportContext
 from Products.GenericSetup.tests.common import DummyImportContext
 
 from Products.CMFCore.CatalogTool import CatalogTool
+from Products.CMFCore.interfaces import ICatalogTool
 from Products.CMFCore.testing import ExportImportZCMLLayer
 
 _EMPTY_EXPORT = """\
@@ -74,8 +76,9 @@
 class _CatalogToolSetup(BaseRegistryTests):
 
     def _initSite(self, foo=2):
-        site = self.root.site = Folder(id='site')
-        ctool = site.portal_catalog = CatalogTool()
+        site = Folder(id='site').__of__(self.app)
+        ctool = CatalogTool()
+        getSiteManager().registerUtility(ctool, ICatalogTool)
 
         for obj_id in ctool.objectIds():
             ctool._delObject(obj_id)
@@ -96,7 +99,7 @@
 
             ctool.addColumn('foo_zctext')
 
-        return site
+        return site, ctool
 
 
 class exportCatalogToolTests(_CatalogToolSetup):
@@ -106,7 +109,7 @@
     def test_unchanged(self):
         from Products.CMFCore.exportimport.catalog import exportCatalogTool
 
-        site = self._initSite(0)
+        site, _ctool = self._initSite(0)
         context = DummyExportContext(site)
         exportCatalogTool(context)
 
@@ -119,7 +122,7 @@
     def test_normal(self):
         from Products.CMFCore.exportimport.catalog import exportCatalogTool
 
-        site = self._initSite(2)
+        site, _ctool = self._initSite(2)
         context = DummyExportContext(site)
         exportCatalogTool(context)
 
@@ -137,8 +140,7 @@
     def test_empty_purge(self):
         from Products.CMFCore.exportimport.catalog import importCatalogTool
 
-        site = self._initSite(2)
-        ctool = site.portal_catalog
+        site, ctool = self._initSite(2)
 
         self.assertEqual(len(ctool.objectIds()), 1)
         self.assertEqual(len(ctool.indexes()), 1)
@@ -155,8 +157,7 @@
     def test_empty_update(self):
         from Products.CMFCore.exportimport.catalog import importCatalogTool
 
-        site = self._initSite(2)
-        ctool = site.portal_catalog
+        site, ctool = self._initSite(2)
 
         self.assertEqual(len(ctool.objectIds()), 1)
         self.assertEqual(len(ctool.indexes()), 1)
@@ -174,8 +175,7 @@
         from Products.CMFCore.exportimport.catalog import exportCatalogTool
         from Products.CMFCore.exportimport.catalog import importCatalogTool
 
-        site = self._initSite(2)
-        ctool = site.portal_catalog
+        site, ctool = self._initSite(2)
 
         self.assertEqual(len(ctool.objectIds()), 1)
         self.assertEqual(len(ctool.indexes()), 1)
@@ -202,8 +202,7 @@
     def test_normal_update(self):
         from Products.CMFCore.exportimport.catalog import importCatalogTool
 
-        site = self._initSite(2)
-        ctool = site.portal_catalog
+        site, ctool = self._initSite(2)
 
         self.assertEqual(len(ctool.objectIds()), 1)
         self.assertEqual(len(ctool.indexes()), 1)

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,6 +20,7 @@
 import os
 
 from OFS.Folder import Folder
+from zope.component import getSiteManager
 from zope.interface import implements
 
 from Products.GenericSetup.testing import BodyAdapterTestCase
@@ -303,10 +304,11 @@
         fsdvs = [ (id, DirectoryView(id,
                                'Products.CMFCore.exportimport.tests:%s' % id))
                   for id in ids ]
-        site._setObject('portal_skins', DummySkinsTool(selections, fsdvs))
+        stool = DummySkinsTool(selections, fsdvs).__of__(site)
+        getSiteManager().registerUtility(stool, ISkinsTool)
 
         site.REQUEST = 'exists'
-        return site
+        return site, stool
 
     def setUp(self):
         BaseRegistryTests.setUp(self)
@@ -324,7 +326,7 @@
     def test_empty(self):
         from Products.CMFCore.exportimport.skins import exportSkinsTool
 
-        site = self._initSite()
+        site, _stool = self._initSite()
         context = DummyExportContext(site)
         exportSkinsTool(context)
 
@@ -340,8 +342,8 @@
         _IDS = ('one', 'two', 'three')
         _PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        tool = site.portal_skins
+        site, tool = self._initSite(selections=_PATHS, ids=_IDS)
+
         tool.default_skin = 'basic'
         tool.request_varname = 'skin_var'
         tool.allow_any = True
@@ -378,8 +380,8 @@
         _IDS = ('one', 'two', 'three')
         _PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
+
         self.failUnless(skins_tool._getSelections().has_key('fancy'))
 
         context = DummyImportContext(site)
@@ -395,8 +397,7 @@
         _IDS = ('one', 'two', 'three')
         _PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         self.failIf(site._skin_setup_called)
         self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -420,8 +421,7 @@
         _IDS = ('one', 'two', 'three')
         _PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         self.failIf(site._skin_setup_called)
         self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -445,8 +445,7 @@
         _IDS = ('one', 'two', 'three')
         _PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         self.failIf(site._skin_setup_called)
         self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -467,8 +466,7 @@
     def test_normal(self):
         from Products.CMFCore.exportimport.skins import importSkinsTool
 
-        site = self._initSite()
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite()
 
         self.failIf(site._skin_setup_called)
         self.assertEqual(len(skins_tool.getSkinPaths()), 0)
@@ -492,8 +490,7 @@
         _IDS = ('one', 'two')
         _PATHS = {'basic': 'one', 'fancy': 'two,one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         self.failIf(site._skin_setup_called)
         skin_paths = skins_tool.getSkinPaths()
@@ -537,8 +534,7 @@
         _IDS = ('one', 'two')
         _PATHS = {'basic': 'one', 'fancy': 'two,one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         self.failIf(site._skin_setup_called)
         skin_paths = skins_tool.getSkinPaths()
@@ -569,8 +565,7 @@
         _IDS = ('one', 'two')
         _PATHS = {'basic': 'one', 'fancy': 'two,one'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         skin_paths = skins_tool.getSkinPaths()
         self.assertEqual(len(skin_paths), 2)
@@ -607,8 +602,7 @@
         _IDS = ('one', 'two', 'three', 'four')
         _PATHS = {'basic': 'one,three,four', 'existing': 'one,two,four'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         skin_paths = skins_tool.getSkinPaths()
         self.assertEqual(len(skin_paths), 2)
@@ -637,8 +631,7 @@
         _IDS = ('one', 'two', 'three', 'four')
         _PATHS = {'existing': 'one,three,four'}
 
-        site = self._initSite(selections=_PATHS, ids=_IDS)
-        skins_tool = site.portal_skins
+        site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
 
         skin_paths = skins_tool.getSkinPaths()
         self.assertEqual(len(skin_paths), 1)

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -17,6 +17,7 @@
 import Testing
 
 from OFS.Folder import Folder
+from zope.component import getSiteManager
 from zope.interface import implements
 
 from Products.GenericSetup.testing import BodyAdapterTestCase
@@ -25,6 +26,7 @@
 from Products.GenericSetup.tests.common import DummyImportContext
 
 from Products.CMFCore.interfaces import IConfigurableWorkflowTool
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.testing import DummyWorkflow
 from Products.CMFCore.testing import ExportImportZCMLLayer
 
@@ -157,10 +159,10 @@
 class _WorkflowSetup(BaseRegistryTests):
 
     def _initSite(self):
-        self.root.site = Folder(id='site')
-        site = self.root.site
-        self.root.site.portal_workflow = DummyWorkflowTool()
-        return site
+        site = Folder(id='site').__of__(self.app)
+        wtool = DummyWorkflowTool().__of__(site)
+        getSiteManager().registerUtility(wtool, IWorkflowTool)
+        return site, wtool
 
 
 class exportWorkflowToolTests(_WorkflowSetup):
@@ -170,7 +172,7 @@
     def test_empty(self):
         from Products.CMFCore.exportimport.workflow import exportWorkflowTool
 
-        site = self._initSite()
+        site, _wtool = self._initSite()
         context = DummyExportContext(site)
         exportWorkflowTool(context)
 
@@ -186,8 +188,8 @@
         WF_ID_NON = 'non_dcworkflow'
         WF_TITLE_NON = 'Non-DCWorkflow'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
+
         nondcworkflow = DummyWorkflow(WF_TITLE_NON)
         nondcworkflow.title = WF_TITLE_NON
         wf_tool._setObject(WF_ID_NON, nondcworkflow)
@@ -216,8 +218,7 @@
         WF_ID_NON = 'non_dcworkflow_%s'
         WF_TITLE_NON = 'Non-DCWorkflow #%s'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
 
         for i in range(4):
             nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -242,8 +243,7 @@
         WF_ID_NON = 'non_dcworkflow_%s'
         WF_TITLE_NON = 'Non-DCWorkflow #%s'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
 
         for i in range(4):
             nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -268,8 +268,7 @@
         WF_ID_NON = 'non_dcworkflow_%s'
         WF_TITLE_NON = 'Non-DCWorkflow #%s'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
 
         for i in range(4):
             nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -297,8 +296,7 @@
         WF_ID_NON = 'non_dcworkflow_%s'
         WF_TITLE_NON = 'Non-DCWorkflow #%s'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
 
         for i in range(4):
             nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -329,8 +327,7 @@
         WF_ID_NON = 'non_dcworkflow_%s'
         WF_TITLE_NON = 'Non-DCWorkflow #%s'
 
-        site = self._initSite()
-        wf_tool = site.portal_workflow
+        site, wf_tool = self._initSite()
 
         for i in range(4):
             nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,11 +11,10 @@
 #
 ##############################################################################
 """Workflow tool xml adapters and setup handlers.
-
-$Id$
 """
 
 from zope.component import adapts
+from zope.component import getSiteManager
 
 from Products.GenericSetup.interfaces import ISetupEnviron
 from Products.GenericSetup.utils import exportObjects
@@ -25,7 +24,7 @@
 from Products.GenericSetup.utils import XMLAdapterBase
 
 from Products.CMFCore.interfaces import IConfigurableWorkflowTool
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.interfaces import IWorkflowTool
 
 
 class WorkflowToolXMLAdapter(XMLAdapterBase, ObjectManagerHelpers,
@@ -88,7 +87,7 @@
 
     def _purgeChains(self):
         self.context.setDefaultChain('')
-        for type_id, chain in self.context.listChainOverrides():
+        for type_id, _chain in self.context.listChainOverrides():
             self.context.setChainForPortalTypes((type_id,), None,
                                                 verify=False)
 
@@ -120,8 +119,8 @@
 def importWorkflowTool(context):
     """Import workflow tool and contained workflow definitions from XML files.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_workflow', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(IWorkflowTool)
     if tool is None:
         logger = context.getLogger('workflow')
         logger.debug('Nothing to import.')
@@ -132,8 +131,8 @@
 def exportWorkflowTool(context):
     """Export workflow tool and contained workflow definitions as XML files.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'portal_workflow', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(IWorkflowTool)
     if tool is None:
         logger = context.getLogger('workflow')
         logger.debug('Nothing to export.')


Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -21,9 +21,13 @@
 from AccessControl.SecurityManagement import newSecurityManager
 from AccessControl.SecurityManagement import noSecurityManager
 from AccessControl.SecurityManager import setSecurityPolicy
+from OFS.Folder import Folder
+from zope.component import getSiteManager
 
+from Products.CMFCore.interfaces import ISkinsTool
 from Products.CMFCore.tests.base.dummy import DummyFolder
 from Products.CMFCore.tests.base.security import AnonymousUser
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy
 from Products.CMFCore.utils import getPackageLocation
 
@@ -162,7 +166,23 @@
         self.skin_path_name = join(self.tempname, self._skinname,
                                    self._layername)
 
+    def _makeContext(self, obj_id, filename):
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
+        stool = Folder('portal_skins')
+        getSiteManager().registerUtility(stool, ISkinsTool)
+
+        stool._setObject('custom', Folder('custom'))
+        custom = stool.custom
+
+        stool._setObject('fsdir', Folder('fsdir'))
+        fsdir = stool.fsdir
+
+        fsdir._setObject(obj_id, self._makeOne(obj_id, filename))
+
+        return stool, custom, fsdir, fsdir[obj_id]
+
+
 class WritableFSDVTest(FSDVTest):
     # Base class for FSDV test, creates a fake skin
     # copy that can be edited.
@@ -233,7 +253,7 @@
                  join(self.tempname, self._skinname),
                  ignore=ignore_patterns('.svn'))
         # make sure we have a writable copy
-        for root, dirs, files in walk(self.tempname):
+        for root, _dirs, files in walk(self.tempname):
             for name in files:
                 chmod(join(root, name), S_IREAD + S_IWRITE)
         FSDVTest.setUp(self)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,11 +20,14 @@
 from AccessControl.SecurityManagement import newSecurityManager
 from OFS.Folder import Folder
 from OFS.SimpleItem import SimpleItem
+from zope.component import getSiteManager
 from zope.interface import implements
 
 from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
 from Products.CMFCore.exceptions import NotFound
+from Products.CMFCore.interfaces import ICatalogTool
 from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.testing import EventZCMLLayer
 from Products.CMFCore.testing import TraversingZCMLLayer
 from Products.CMFCore.tests.base.testcase import LogInterceptor
@@ -120,8 +123,11 @@
         self.root = DummyRoot('')
         self.root.site = SimpleFolder('site')
         self.site = self.root.site
-        self.site._setObject('portal_catalog', DummyCatalog())
-        self.site._setObject('portal_workflow', DummyWorkflowTool())
+        sm = getSiteManager()
+        self.ctool = DummyCatalog()
+        sm.registerUtility(self.ctool, ICatalogTool)
+        self.wtool = DummyWorkflowTool()
+        sm.registerUtility(self.wtool, IWorkflowTool)
         self.site.foo = TheClass('foo')
 
     def tearDown(self):
@@ -130,26 +136,26 @@
 
     def test_indexObject(self):
         foo = self.site.foo
-        cat = self.site.portal_catalog
+        cat = self.ctool
         foo.indexObject()
         self.assertEquals(cat.log, ["index /site/foo"])
 
     def test_unindexObject(self):
         foo = self.site.foo
-        cat = self.site.portal_catalog
+        cat = self.ctool
         foo.unindexObject()
         self.assertEquals(cat.log, ["unindex /site/foo"])
 
     def test_reindexObject(self):
         foo = self.site.foo
-        cat = self.site.portal_catalog
+        cat = self.ctool
         foo.reindexObject()
         self.assertEquals(cat.log, ["reindex /site/foo []"])
         self.assert_(foo.notified)
 
     def test_reindexObject_idxs(self):
         foo = self.site.foo
-        cat = self.site.portal_catalog
+        cat = self.ctool
         foo.reindexObject(idxs=['bar'])
         self.assertEquals(cat.log, ["reindex /site/foo ['bar']"])
         self.failIf(foo.notified)
@@ -160,7 +166,7 @@
         bar = self.site.foo.bar
         self.site.foo.hop = TheClass('hop')
         hop = self.site.foo.hop
-        cat = self.site.portal_catalog
+        cat = self.ctool
         cat.setObs([foo, bar, hop])
         foo.reindexObjectSecurity()
         l = list(cat.log)
@@ -179,7 +185,7 @@
         foo = self.site.foo
         missing = TheClass('missing').__of__(foo)
         missing.GETOBJECT_RAISES = True
-        cat = self.site.portal_catalog
+        cat = self.ctool
         try:
             self._catch_log_errors()
             cat.setObs([foo, missing])
@@ -194,7 +200,7 @@
         foo = self.site.foo
         missing = TheClass('missing').__of__(foo)
         missing.GETOBJECT_RAISES = False
-        cat = self.site.portal_catalog
+        cat = self.ctool
         cat.setObs([foo, missing])
         foo.reindexObjectSecurity()
         self.assertEquals(cat.log,
@@ -205,11 +211,11 @@
 
     def test_catalog_tool(self):
         foo = self.site.foo
-        self.assertEqual(foo._getCatalogTool(), self.site.portal_catalog)
+        self.assertEqual(foo._getCatalogTool(), self.ctool)
 
     def test_workflow_tool(self):
         foo = self.site.foo
-        self.assertEqual(foo._getWorkflowTool(), self.site.portal_workflow)
+        self.assertEqual(foo._getWorkflowTool(), self.wtool)
 
     # FIXME: more tests needed
 
@@ -221,8 +227,10 @@
     def _makeSite(self):
         self.app._setObject('site', SimpleFolder('site'))
         site = self.app._getOb('site')
-        site._setObject('portal_catalog', DummyCatalog())
-        site._setObject('portal_workflow', DummyWorkflowTool())
+        sm = getSiteManager()
+        self.ctool = DummyCatalog()
+        sm.registerUtility(self.ctool, ICatalogTool)
+        sm.registerUtility(DummyWorkflowTool(), IWorkflowTool)
         # Hack, we need a _p_mtime for the file, so we make sure that it
         # has one. We use a subtransaction, which means we can rollback
         # later and pretend we didn't touch the ZODB.
@@ -258,7 +266,7 @@
         site = self._makeSite()
         bar = TheClass('bar')
         site._setObject('bar', bar)
-        cat = site.portal_catalog
+        cat = self.ctool
         self.assertEquals(cat.log, ["index /site/bar"])
 
     def test_object_unindexed_after_removing(self):
@@ -266,7 +274,7 @@
         site = self._makeSite()
         bar = TheClass('bar')
         site._setObject('bar', bar)
-        cat = site.portal_catalog
+        cat = self.ctool
         cat.log = []
         site._delObject('bar')
         self.assertEquals(cat.log, ["unindex /site/bar"])
@@ -282,7 +290,7 @@
 
         bar = TheClass('bar')
         folder1._setObject('bar', bar)
-        cat = site.portal_catalog
+        cat = self.ctool
         cat.log = []
 
         transaction.savepoint(optimistic=True)
@@ -303,7 +311,7 @@
 
         bar = TheClass('bar')
         folder1._setObject('bar', bar)
-        cat = site.portal_catalog
+        cat = self.ctool
         cat.log = []
 
         transaction.savepoint(optimistic=True)
@@ -321,7 +329,7 @@
 
         bar = TheClass('bar')
         site._setObject('bar', bar)
-        cat = site.portal_catalog
+        cat = self.ctool
         cat.log = []
 
         transaction.savepoint(optimistic=True)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -16,11 +16,15 @@
 import unittest
 
 from Acquisition import Implicit
+from zope.component import getSiteManager
 from zope.interface import implements
+from zope.testing.cleanup import cleanUp
+
 from Products.CMFCore.interfaces import ICatalogTool
+from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IIndexableObject
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.tests.base.dummy import DummyContent
-from Products.CMFCore.interfaces import IIndexableObject
-from Products.CMFCore.interfaces import IContentish
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
 
@@ -61,10 +65,10 @@
         return IndexableObjectWrapper
 
     def _makeOne(self, vars, obj):
-        self.root = FakeFolder()
-        self.root.portal_catalog = FakeCatalog()
-        self.root.portal_workflow = FakeWorkflowTool(vars)
-        catalog = self.root.portal_catalog
+        self.app = FakeFolder()
+        self.app.portal_catalog = FakeCatalog()
+        getSiteManager().registerUtility(FakeWorkflowTool(vars), IWorkflowTool)
+        catalog = self.app.portal_catalog
         return self._getTargetClass()(obj, catalog)
 
     def _makeContent(self, *args, **kw):
@@ -72,6 +76,9 @@
 
         return DummyContent(*args, **kw)
 
+    def tearDown(self):
+        cleanUp()
+
     def test_interfaces(self):
         from zope.interface.verify import verifyClass
         from Products.CMFCore.interfaces import IIndexableObjectWrapper
@@ -149,13 +156,13 @@
     def loginWithRoles(self, *roles):
         from AccessControl.SecurityManagement import newSecurityManager
         from Products.CMFCore.tests.base.security import UserWithRoles
-        user = UserWithRoles(*roles).__of__(self.root)
+        user = UserWithRoles(*roles).__of__(self.app)
         newSecurityManager(None, user)
 
     def loginManager(self):
         from AccessControl.SecurityManagement import newSecurityManager
         from Products.CMFCore.tests.base.security import OmnipotentUser
-        user = OmnipotentUser().__of__(self.root)
+        user = OmnipotentUser().__of__(self.app)
         newSecurityManager(None, user)
 
     def setupProxyRoles(self, *proxy_roles):
@@ -459,10 +466,9 @@
 
     def test_refreshCatalog(self):
         from Products.CMFCore.tests.base.dummy import DummySite
-        site = DummySite('site').__of__(self.root)
+        site = DummySite('site').__of__(self.app)
         site._setObject('dummy', self._makeContent(catalog=1))
-        site._setObject('portal_catalog', self._makeOne())
-        ctool = site.portal_catalog
+        ctool = self._makeOne().__of__(site)
         ctool.addIndex('meta_type', 'FieldIndex')
         ctool.catalog_object(site.dummy, '/dummy')
 
@@ -535,11 +541,10 @@
         def FakeWrapper(object, catalog):
             return object
 
-        from zope.component import getSiteManager
-        self.sm = getSiteManager()
-        self.sm.registerAdapter(FakeWrapper,
-                                (IContentish, ICatalogTool),
-                                IIndexableObject)
+        sm = getSiteManager()
+        sm.registerAdapter(FakeWrapper,
+                           (IContentish, ICatalogTool),
+                           IIndexableObject)
 
         dummy = DummyContent(catalog=1)
         ctool = self._makeOne()

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -18,20 +18,19 @@
 
 from os.path import join as path_join
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from App.Common import rfc1123_date
 from DateTime import DateTime
 from OFS.Folder import Folder
 from Products.StandardCacheManagers import RAMCacheManager
 from zope.site.hooks import setHooks
+from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.FSDTMLMethod import FSDTMLMethod
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
 from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
 from Products.CMFCore.tests.base.dummy import DummyContent
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -105,28 +104,16 @@
         self.assertEqual( self.RESPONSE.getStatus(), 304 )
 
 
-class FSDTMLMethodCustomizationTests( SecurityTest, FSDTMLMaker ):
+class FSDTMLMethodCustomizationTests(SecurityTest, FSDTMLMaker):
 
     def setUp(self):
         FSDTMLMaker.setUp(self)
         SecurityTest.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+        self.skins, self.custom, self.fsdir, self.fsDTML = self._makeContext(
+                                                   'testDTML', 'testDTML.dtml')
 
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        self.skins = self.root.portal_skins
-
-        self.skins._setObject( 'custom', Folder( 'custom' ) )
-        self.custom = self.skins.custom
-
-        self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        self.fsdir = self.skins.fsdir
-
-        self.fsdir._setObject( 'testDTML'
-                             , self._makeOne( 'testDTML', 'testDTML.dtml' ) )
-
-        self.fsDTML = self.fsdir.testDTML
-
     def tearDown(self):
+        cleanUp()
         SecurityTest.tearDown(self)
         FSDTMLMaker.tearDown(self)
 

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,7 +20,6 @@
 
 from os.path import join as path_join
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from OFS.Folder import Folder
 from Products.StandardCacheManagers import RAMCacheManager
@@ -31,7 +30,6 @@
 from Products.CMFCore.FSPageTemplate import FSPageTemplate
 from Products.CMFCore.testing import TraversingZCMLLayer
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -134,7 +132,6 @@
             self.fail('Calling a bad template did not raise an exception')
 
     def test_caching( self ):
-
         #   Test HTTP caching headers.
         self._setupCachingPolicyManager(DummyCachingManager())
         original_len = len( self.RESPONSE.headers )
@@ -146,7 +143,6 @@
         self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
 
     def test_pt_properties( self ):
-
         script = self._makeOne( 'testPT', 'testPT.pt' )
         self.assertEqual( script.pt_source_file(), 'file:%s'
                                % path_join(self.skin_path_name, 'testPT.pt') )
@@ -160,42 +156,26 @@
             self.assertEqual(script(), 'foo bar spam eggs\n')
 
 
-class FSPageTemplateCustomizationTests( SecurityTest, FSPTMaker ):
+class FSPageTemplateCustomizationTests(SecurityTest, FSPTMaker):
 
     def setUp(self):
         FSPTMaker.setUp(self)
         SecurityTest.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+        self.skins, self.custom, self.fsdir, self.fsPT = self._makeContext(
+                                                         'testPT', 'testPT.pt')
 
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        self.skins = self.root.portal_skins
-
-        self.skins._setObject( 'custom', Folder( 'custom' ) )
-        self.custom = self.skins.custom
-
-        self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        self.fsdir = self.skins.fsdir
-
-        self.fsdir._setObject( 'testPT'
-                             , self._makeOne( 'testPT', 'testPT.pt' ) )
-
-        self.fsPT = self.fsdir.testPT
-
     def tearDown(self):
         cleanUp()
         SecurityTest.tearDown(self)
         FSPTMaker.tearDown(self)
 
     def test_customize( self ):
-
         self.fsPT.manage_doCustomize( folder_path='custom' )
 
         self.assertEqual( len( self.custom.objectIds() ), 1 )
         self.failUnless( 'testPT' in self.custom.objectIds() )
 
     def test_customize_alternate_root( self ):
-
-        from OFS.Folder import Folder
         self.root.other = Folder('other')
 
         self.fsPT.manage_doCustomize( folder_path='other', root=self.root )
@@ -204,14 +184,12 @@
         self.failUnless( 'testPT' in self.root.other.objectIds() )  
 
     def test_customize_fspath_as_dot( self ):
-
         self.fsPT.manage_doCustomize( folder_path='.' )
 
         self.failIf( 'testPT' in self.custom.objectIds() )  
         self.failUnless( 'testPT' in self.skins.objectIds() )  
 
     def test_customize_manual_clone( self ):
-
         clone = Folder('testPT')
 
         self.fsPT.manage_doCustomize( folder_path='custom', obj=clone )
@@ -237,7 +215,6 @@
 
 
     def test_dontExpandOnCreation( self ):
-
         self.fsPT.manage_doCustomize( folder_path='custom' )
 
         customized = self.custom.testPT

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -15,10 +15,9 @@
 
 import unittest
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
+from zope.testing.cleanup import cleanUp
 
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
@@ -28,43 +27,27 @@
     def setUp(self):
         FSDVTest.setUp(self)
         SecurityTest.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
     def tearDown(self):
+        cleanUp()
         SecurityTest.tearDown(self)
         FSDVTest.tearDown(self)
 
-    def _getTargetClass( self ):
+    def _getTargetClass(self):
         from Products.CMFCore.FSPropertiesObject import FSPropertiesObject
+
         return FSPropertiesObject
 
-    def _makeOne( self, id, filename ):
+    def _makeOne(self, id, filename):
         from os.path import join
         path = join(self.skin_path_name, filename)
-        return self._getTargetClass()( id, path ) 
+        return self._getTargetClass()(id, path)
 
-    def _makeContext( self, po_id, po_filename ):
-        from OFS.Folder import Folder
-
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        skins = self.root.portal_skins
-
-        skins._setObject( 'custom', Folder( 'custom' ) )
-        custom = skins.custom
-
-        skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        fsdir = skins.fsdir
-
-        fsdir._setObject( 'test_props', self._makeOne( po_id, po_filename ) )
-        fspo = fsdir.test_props
-
-        return custom, fsdir, fspo
-
     def test__readFile( self ):
         from DateTime.DateTime import DateTime
 
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
+        _stool, _custom, _fsdir, fspo = self._makeContext('test_props',
+                                                          'test_props.props')
 
         self.assertEqual( fspo.getProperty( 'title' ), 'Test properties' )
         self.assertEqual( fspo.getProperty( 'value1' ), 'one' )
@@ -78,12 +61,11 @@
         self.assertEqual( fspo.getProperty( 'a_tokens' )
                         , [ 'peter', 'paul', 'mary' ] )
 
-    def test__createZODBClone( self ):
-
+    def test__createZODBClone(self):
         from OFS.Folder import Folder
 
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
+        _stool, _custom, _fsdir, fspo = self._makeContext('test_props',
+                                                          'test_props.props')
 
         target = fspo._createZODBClone()
         self.failUnless( isinstance( target, Folder ) )
@@ -91,40 +73,40 @@
             self.assertEqual( target.getProperty( prop_id )
                             , fspo.getProperty( prop_id ) )
 
-    def test_manage_doCustomize( self ):
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
+    def test_manage_doCustomize(self):
+        _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+                                                         'test_props.props')
 
         fspo.manage_doCustomize( folder_path='custom' )
 
         self.assertEqual( len( custom.objectIds() ), 1 )
         self.failUnless( 'test_props' in custom.objectIds() )  
 
-    def test_manage_doCustomize_alternate_root( self ):
+    def test_manage_doCustomize_alternate_root(self):
         from OFS.Folder import Folder
 
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
-        self.root.other = Folder('other')
+        _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+                                                         'test_props.props')
+        self.app.other = Folder('other')
 
-        fspo.manage_doCustomize( folder_path='other', root=self.root )
+        fspo.manage_doCustomize(folder_path='other', root=self.app)
 
-        self.failIf( 'test_props' in custom.objectIds() )  
-        self.failUnless( 'test_props' in self.root.other.objectIds() )  
+        self.failIf('test_props' in custom.objectIds())
+        self.failUnless('test_props' in self.app.other.objectIds())
 
-    def test_manage_doCustomize_fspath_as_dot( self ):
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
+    def test_manage_doCustomize_fspath_as_dot(self):
+        stool, custom, _fsdir, fspo = self._makeContext('test_props',
+                                                        'test_props.props')
         fspo.manage_doCustomize( folder_path='.' )
 
         self.failIf( 'test_props' in custom.objectIds() )  
-        self.failUnless( 'test_props' in self.root.portal_skins.objectIds() )  
+        self.failUnless( 'test_props' in stool.objectIds() )  
 
-    def test_manage_doCustomize_manual_clone( self ):
+    def test_manage_doCustomize_manual_clone(self):
         from OFS.Folder import Folder
 
-        custom, fsdir, fspo = self._makeContext( 'test_props'
-                                               , 'test_props.props')
+        _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+                                                         'test_props.props')
         clone = Folder('test_props')
         fspo.manage_doCustomize( folder_path='custom', obj=clone )
 

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -23,16 +23,15 @@
 from thread import start_new_thread
 from time import sleep
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from DateTime.DateTime import DateTime
 from OFS.Folder import Folder
 from OFS.SimpleItem import SimpleItem
 from Products.StandardCacheManagers import RAMCacheManager
+from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.FSPythonScript import FSPythonScript
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import WarningInterceptor
@@ -71,7 +70,7 @@
         # Tries to exercise a former race condition where
         # FSObject._updateFromFS() set self._parsed before the
         # object was really parsed.
-        for n in range(10):
+        for _n in range(10):
             f = Folder()
             script = self._makeOne('test1', 'test1.py').__of__(f)
             res = []
@@ -103,36 +102,16 @@
     def setUp(self):
         FSPSMaker.setUp(self)
         SecurityTest.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
     def tearDown(self):
+        cleanUp()
         SecurityTest.tearDown(self)
         FSPSMaker.tearDown(self)
 
-    def _makeSkins(self):
-
-        root = self.root
-        root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        tool = self.root.portal_skins
-
-        tool._setObject( 'custom', Folder( 'custom' ) )
-        custom = tool.custom
-
-        tool._setObject( 'fsdir', Folder( 'fsdir' ) )
-        fsdir = tool.fsdir
-
-        fsdir._setObject( 'test6'
-                        , self._makeOne( 'test6', 'test6.py' ) )
-
-        fsPS = fsdir.test6
-
-        return root, tool, custom, fsdir, fsPS
-
-    def test_customize( self ):
-
+    def test_customize(self):
         from Products.CMFCore.FSPythonScript import CustomizedPythonScript
 
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
 
         fsPS.manage_doCustomize( folder_path='custom' )
 
@@ -144,28 +123,25 @@
         self.failUnless(isinstance(test6, CustomizedPythonScript))
         self.assertEqual(test6.original_source, fsPS.read())
 
-    def test_customize_alternate_root( self ):
+    def test_customize_alternate_root(self):
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
+        self.app.other = Folder('other')
 
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
-        root.other = Folder('other')
+        fsPS.manage_doCustomize(folder_path='other', root=self.app)
 
-        fsPS.manage_doCustomize( folder_path='other', root=root )
+        self.failIf('test6' in custom.objectIds())
+        self.failUnless('test6' in self.app.other.objectIds())
 
-        self.failIf( 'test6' in custom.objectIds() )  
-        self.failUnless( 'test6' in root.other.objectIds() )  
+    def test_customize_fspath_as_dot(self):
+        stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
 
-    def test_customize_fspath_as_dot( self ):
-
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
-
         fsPS.manage_doCustomize( folder_path='.' )
 
         self.failIf( 'test6' in custom.objectIds() )  
-        self.failUnless( 'test6' in root.portal_skins.objectIds() )  
+        self.failUnless( 'test6' in stool.objectIds() )  
 
-    def test_customize_manual_clone( self ):
-
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
+    def test_customize_manual_clone(self):
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
         clone = Folder('test6')
 
         fsPS.manage_doCustomize( folder_path='custom', obj=clone )
@@ -175,10 +151,10 @@
 
     def test_customize_caching(self):
         # Test to ensure that cache manager associations survive customizing
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
 
         cache_id = 'gofast'
-        RAMCacheManager.manage_addRAMCacheManager( root
+        RAMCacheManager.manage_addRAMCacheManager( self.app
                                                  , cache_id
                                                  , REQUEST=None
                                                  )
@@ -193,7 +169,7 @@
 
     def test_customize_proxyroles(self):
         # Test to ensure that proxy roles survive customizing
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
 
         fsPS._proxy_roles = ('Manager', 'Anonymous')
         self.failUnless(fsPS.manage_haveProxy('Anonymous'))
@@ -206,7 +182,7 @@
 
     def test_customization_permissions(self):
         # Test to ensure that permission settings survive customizing
-        root, tool, custom, fsdir, fsPS = self._makeSkins()
+        _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
         perm = 'View management screens'
 
         # First, set a permission to an odd role and verify
@@ -317,13 +293,13 @@
         SecurityTest.tearDown(self)
 
     def testFSPSWarn(self):
-        self.root._setObject('warn_me', WarnMe(2))
-        self.root._setObject('warn1', self._makeOne('warn1', 'test_warn.py'))
+        self.app._setObject('warn_me', WarnMe(2))
+        self.app._setObject('warn1', self._makeOne('warn1', 'test_warn.py'))
         # This used to raise an error:
         #   File "/usr/local/python2.3/lib/python2.3/warnings.py", line 63, in warn_explicit
         #     if module[-3:].lower() == ".py":
         # TypeError: unsubscriptable object
-        self.root.warn1()
+        self.app.warn1()
 
 
 def test_suite():

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
 import os
 import re
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from App.Common import rfc1123_date
 from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.testing import TraversingZCMLLayer
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -152,26 +150,11 @@
 class FSReSTMethodCustomizationTests(SecurityTest, FSReSTMaker):
 
     def setUp(self):
-        from OFS.Folder import Folder
-
         SecurityTest.setUp(self)
         FSReSTMaker.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+        self.skins, self.custom, self.fsdir, self.fsReST = self._makeContext(
+                                                    'testReST', 'testReST.rst')
 
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        self.skins = self.root.portal_skins
-
-        self.skins._setObject( 'custom', Folder( 'custom' ) )
-        self.custom = self.skins.custom
-
-        self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        self.fsdir = self.skins.fsdir
-
-        self.fsdir._setObject( 'testReST'
-                             , self._makeOne( 'testReST', 'testReST.rst' ) )
-
-        self.fsReST = self.fsdir.testReST
-
     def tearDown(self):
         cleanUp()
         FSReSTMaker.tearDown(self)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
 import os
 import re
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from App.Common import rfc1123_date
 from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.testing import TraversingZCMLLayer
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -185,27 +183,12 @@
                                    ):
 
     def setUp(self):
-        from OFS.Folder import Folder
-
         _TemplateSwitcher.setUp(self)
         SecurityTest.setUp(self)
         FSSTXMaker.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+        self.skins, self.custom, self.fsdir, self.fsSTX = self._makeContext(
+                                                      'testSTX', 'testSTX.stx')
 
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        self.skins = self.root.portal_skins
-
-        self.skins._setObject( 'custom', Folder( 'custom' ) )
-        self.custom = self.skins.custom
-
-        self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        self.fsdir = self.skins.fsdir
-
-        self.fsdir._setObject( 'testSTX'
-                             , self._makeOne( 'testSTX', 'testSTX.stx' ) )
-
-        self.fsSTX = self.fsdir.testSTX
-
     def tearDown(self):
         cleanUp()
         FSSTXMaker.tearDown(self)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
 
 from os.path import join
 
-from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
-from OFS.Folder import Folder
+from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.FSZSQLMethod import FSZSQLMethod
-from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
@@ -64,65 +62,49 @@
     def setUp(self):
         FSZSQLMaker.setUp(self)
         SecurityTest.setUp(self)
-        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+        self.skins, self.custom, self.fsdir, self.fsZSQL = self._makeContext(
+                                                     'testsql', 'testsql.zsql')
 
-        self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
-        self.skins = self.root.portal_skins
-
-        self.skins._setObject( 'custom', Folder( 'custom' ) )
-        self.custom = self.skins.custom
-
-        self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
-        self.fsdir = self.skins.fsdir
-
-        self.fsdir._setObject( 'testsql'
-                             , self._makeOne( 'testsql', 'testsql.zsql' ) )
-
-        self.fsZSQL = self.fsdir.testsql
-
     def tearDown(self):
+        cleanUp()
         SecurityTest.tearDown(self)
         FSZSQLMaker.tearDown(self)
 
-    def test_customize( self ):
+    def test_customize(self):
+        self.fsZSQL.manage_doCustomize(folder_path='custom')
 
-        self.fsZSQL.manage_doCustomize( folder_path='custom' )
+        self.assertEqual(len(self.custom.objectIds()), 1)
+        self.failUnless('testsql' in self.custom.objectIds())
 
-        self.assertEqual( len( self.custom.objectIds() ), 1 )
-        self.failUnless( 'testsql' in self.custom.objectIds() )   
-
-    def test_customize_alternate_root( self ):
-
+    def test_customize_alternate_root(self):
         from OFS.Folder import Folder
 
-        self.root.other = Folder('other')
+        self.app.other = Folder('other')
 
-        self.fsZSQL.manage_doCustomize( folder_path='other', root=self.root )
+        self.fsZSQL.manage_doCustomize(folder_path='other', root=self.app)
 
-        self.failIf( 'testsql' in self.custom.objectIds() )   
-        self.failUnless( 'testsql' in self.root.other.objectIds() )   
+        self.failIf('testsql' in self.custom.objectIds())
+        self.failUnless('testsql' in self.app.other.objectIds())
 
-    def test_customize_fspath_as_dot( self ):
+    def test_customize_fspath_as_dot(self):
+        self.fsZSQL.manage_doCustomize(folder_path='.')
 
-        self.fsZSQL.manage_doCustomize( folder_path='.' )
+        self.failIf('testsql' in self.custom.objectIds())
+        self.failUnless('testsql' in self.skins.objectIds())
 
-        self.failIf( 'testsql' in self.custom.objectIds() )   
-        self.failUnless( 'testsql' in self.skins.objectIds() )   
-
-    def test_customize_manual_clone( self ):
-
+    def test_customize_manual_clone(self):
         from OFS.Folder import Folder
 
         clone = Folder('testsql')
 
-        self.fsZSQL.manage_doCustomize( folder_path='custom', obj=clone )
+        self.fsZSQL.manage_doCustomize(folder_path='custom', obj=clone)
 
-        self.failUnless( 'testsql' in self.custom.objectIds() )   
-        self.failUnless( aq_base(self.custom._getOb('testsql')) is clone )   
+        self.failUnless('testsql' in self.custom.objectIds())
+        self.failUnless(aq_base(self.custom._getOb('testsql')) is clone)
 
     def test_customize_properties(self):
         # Make sure all properties are coming across
-        self.fsZSQL.manage_doCustomize( folder_path='custom' )
+        self.fsZSQL.manage_doCustomize(folder_path='custom')
         zsql = self.custom.testsql
 
         self.assertEqual(zsql.title, 'This is a title')

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -25,6 +25,7 @@
 from Products.CMFCore.CMFBTreeFolder import CMFBTreeFolder
 from Products.CMFCore.interfaces import IMemberDataTool
 from Products.CMFCore.interfaces import ISiteRoot
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.MemberDataTool import MemberDataTool
 from Products.CMFCore.PortalFolder import PortalFolder
 from Products.CMFCore.tests.base.dummy import DummySite
@@ -73,7 +74,7 @@
         mtool = site.portal_membership
         members = site._setObject( 'Members', PortalFolder('Members') )
         acl_users = site._setObject( 'acl_users', DummyUserFolder() )
-        wtool = site._setObject( 'portal_workflow', DummyTool() )
+        getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
 
         # permission
         mtool.createMemberArea('user_foo')
@@ -106,7 +107,7 @@
         mtool = site.portal_membership
         members = site._setObject( 'Members', CMFBTreeFolder('Members') )
         acl_users = site._setObject( 'acl_users', DummyUserFolder() )
-        wtool = site._setObject( 'portal_workflow', DummyTool() )
+        getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
 
         # permission
         mtool.createMemberArea('user_foo')
@@ -140,7 +141,7 @@
         site = self._makeSite( self.root.folder )
         mtool = site.portal_membership
         members = site._setObject( 'Members', PortalFolder('Members') )
-        wtool = site._setObject( 'portal_workflow', DummyTool() )
+        getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
 
         local_uf = DummyUserFolder()
         delattr( local_uf, NONLOCAL_USER_ID )

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -32,6 +32,7 @@
 from Products.CMFCore.exceptions import BadRequest
 from Products.CMFCore.interfaces import ICatalogTool
 from Products.CMFCore.interfaces import ITypesTool
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.testing import ConformsToFolder
 from Products.CMFCore.testing import FunctionalZCMLLayer
 from Products.CMFCore.testing import TraversingEventZCMLLayer
@@ -96,7 +97,7 @@
         SecurityTest.setUp(self)
         sm = getSiteManager()
         sm.registerUtility(self._getTargetObject(), IFactory, 'cmf.folder')
-        self.site = DummySite('site').__of__(self.root)
+        self.site = DummySite('site').__of__(self.app)
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         newSecurityManager(None, acl_users.all_powerful_Oz)
 
@@ -166,7 +167,7 @@
 
     def setUp(self):
         SecurityTest.setUp(self)
-        self.site = DummySite('site').__of__(self.root)
+        self.site = DummySite('site').__of__(self.app)
 
     def test_contents_methods(self):
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
@@ -251,34 +252,43 @@
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
-        ttool = self.site._setObject( 'portal_types', TypesTool() )
-        ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
-        self.assertEqual( len(ctool), 0 )
+        self.site._setObject('portal_types', TypesTool())
+        ctool = DummyCatalogTool()
+        getSiteManager().registerUtility(ctool, ICatalogTool)
+        self.assertEqual(len(ctool), 0)
 
-        test._setObject( 'foo', DummyContent( 'foo' , catalog=1 ) )
+        test._setObject('foo', DummyContent('foo' , catalog=1))
         foo = test.foo
-        self.failUnless( foo.after_add_called )
-        self.failIf( foo.before_delete_called )
-        self.assertEqual( len(ctool), 1 )
+        self.failUnless(foo.after_add_called)
+        self.failIf(foo.before_delete_called)
+        self.assertEqual(len(ctool), 1)
 
         foo.reset()
         test._delObject('foo')
-        self.failIf( foo.after_add_called )
-        self.failUnless( foo.before_delete_called )
-        self.assertEqual( len(ctool), 0 )
+        self.failIf(foo.after_add_called)
+        self.failUnless(foo.before_delete_called)
+        self.assertEqual(len(ctool), 0)
 
+        getSiteManager().unregisterUtility(provided=ICatalogTool)
+
     def test_portalfolder_cataloging(self):
         #
         # Test to ensure a portal folder itself is *not* cataloged upon
         # instantiation (Tracker issue 309)
         #
-        ttool = self.site._setObject( 'portal_types', TypesTool() )
-        ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
-        wftool = self.site._setObject( 'portal_workflow', WorkflowTool() )
+        self.site._setObject('portal_types', TypesTool())
+        sm = getSiteManager()
+        ctool = DummyCatalogTool()
+        sm.registerUtility(ctool, ICatalogTool)
+        wtool = WorkflowTool()
+        sm.registerUtility(wtool, IWorkflowTool)
         test = self._makeOne('test')
-        wftool.notifyCreated(test)
-        self.assertEqual( len(ctool), 0 )
+        wtool.notifyCreated(test)
+        self.assertEqual(len(ctool), 0)
 
+        sm.unregisterUtility(provided=ICatalogTool)
+        sm.unregisterUtility(provided=IWorkflowTool)
+
     def test_tracker261(self):
         #
         #   Tracker issue #261 says that content in a deleted folder
@@ -290,9 +300,10 @@
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
-        ttool = self.site._setObject( 'portal_types', TypesTool() )
-        ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
-        self.assertEqual( len(ctool), 0 )
+        self.site._setObject('portal_types', TypesTool())
+        ctool = DummyCatalogTool()
+        getSiteManager().registerUtility(ctool, ICatalogTool)
+        self.assertEqual(len(ctool), 0)
 
         test._setObject( 'sub', PortalFolder( 'sub', '' ) )
         sub = test.sub
@@ -310,6 +321,8 @@
         self.failUnless( foo.before_delete_called )
         self.assertEqual( len(ctool), 0 )
 
+        getSiteManager().unregisterUtility(provided=ICatalogTool)
+
     def test_manageAddFolder(self):
         #
         #   Does MKDIR/MKCOL intercept work?
@@ -359,7 +372,7 @@
                 self._context._setOb( id, PortalFolder( id ) )
                 self._context._getOb( id )._setPortalTypeName( 'Grabbed' )
 
-        self.root.grabbed = Grabbed(test)
+        self.app.grabbed = Grabbed(test)
 
         test.manage_addFolder(id='indirect', title='Indirect')
         self.assertEqual( test.indirect.getPortalTypeName(), 'Grabbed' )
@@ -432,9 +445,11 @@
                 return self._workflows
 
         # Now copy/paste verification should raise a ValueError
-        self.site.portal_workflow = DummyWorkflowTool()
+        getSiteManager().registerUtility(DummyWorkflowTool(), IWorkflowTool)
         self.assertRaises(ValueError, folder._verifyObjectPaste, content)
 
+        getSiteManager().unregisterUtility(provided=IWorkflowTool)
+
     def test_setObjectRaisesBadRequest(self):
         #
         #   _setObject() should raise BadRequest on duplicate id
@@ -517,8 +532,8 @@
 
     def setUp(self):
         SecurityTest.setUp(self)
-        self.root._setObject( 'site', DummySite('site') )
-        self.site = self.root.site
+        self.app._setObject('site', DummySite('site'))
+        self.site = self.app.site
 
     def _makeOne(self, id, *args, **kw):
         from Products.CMFCore.PortalFolder import PortalFolder
@@ -533,8 +548,9 @@
 
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         newSecurityManager(None, acl_users.all_powerful_Oz)
-        ttool = self.site._setObject( 'portal_types', TypesTool() )
-        ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
+        self.site._setObject( 'portal_types', TypesTool() )
+        ctool = DummyCatalogTool()
+        getSiteManager().registerUtility(ctool, ICatalogTool)
         self.assertEqual( len(ctool), 0 )
 
         folder = self._makeOne('folder')
@@ -580,7 +596,8 @@
         #
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         newSecurityManager(None, acl_users.all_powerful_Oz)
-        ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
+        ctool = DummyCatalogTool()
+        getSiteManager().registerUtility(ctool, ICatalogTool)
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         fti = FTIDATA_DUMMY[0].copy()
         ttool._setObject( 'Dummy Content', FTI(**fti) )
@@ -967,7 +984,6 @@
         self.app._setObject( 'folder1', PortalFolder( 'folder1' ) )
         self.app._setObject( 'folder2', PortalFolder( 'folder2' ) )
         folder1 = getattr( self.app, 'folder1' )
-        folder2 = getattr( self.app, 'folder2' )
         manage_addFile(folder1, 'file', file='', content_type='text/plain')
 
         # Hack, we need a _p_mtime for the file, so we make sure that it

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py	2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py	2011-09-16 12:18:39 UTC (rev 122820)
@@ -16,7 +16,9 @@
 import unittest
 
 from AccessControl.Permission import Permission
+from zope.component import getSiteManager
 
+from Products.CMFCore.interfaces import IWorkflowTool
 from Products.CMFCore.testing import FunctionalZCMLLayer
 from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import WarningInterceptor
@@ -99,7 +101,7 @@
         from Acquisition import aq_base
         from Products.CMFCore.interfaces import ITypeInformation
         from webdav.NullResource import NullResource
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         tool = self._makeOne().__of__(site)
         meta_types = {}
         # Seems we get NullResource if the method couldn't be traverse to
@@ -121,7 +123,7 @@
         from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -140,7 +142,7 @@
         from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -160,7 +162,7 @@
         from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -180,7 +182,7 @@
         from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -201,7 +203,7 @@
         from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -210,11 +212,14 @@
         tool._setObject('Dummy Content', FTI(**fti))
         folder = DummyFolder(id='folder', fake_product=1).__of__(site)
         tool.portal_workflow = DummyWorkflowTool(DummyWorkflow(False))
+        getSiteManager().registerUtility(tool.portal_workflow, IWorkflowTool)
 
         self.assertRaises(Unauthorized,
                           tool.constructContent,
                           'Dummy Content', container=folder, id='page1')
 
+        getSiteManager().unregisterUtility(provided=IWorkflowTool)
+
     def test_constructContent_simple_STI(self):
         from AccessControl import Unauthorized
         from AccessControl.SecurityManagement import newSecurityManager
@@ -225,7 +230,7 @@
         from Products.CMFCore.tests.base.dummy import DummyFactoryDispatcher
         from Products.CMFCore.tests.base.tidata import STI_SCRIPT
         from Products.PythonScripts.PythonScript import PythonScript
-        site = self._makeSite().__of__(self.root)
+        site = self._makeSite().__of__(self.app)
         acl_users = site.acl_users
         setSecurityPolicy(self._oldPolicy)
         newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -318,8 +323,8 @@
         taf = self._makeAndSetInstance( 'Allowing Folder'
                                       , allowed_content_types=( 'Hidden'
                                                               ,'Not Hidden'))
-        tih = self._makeAndSetInstance( 'Hidden', global_allow=0)
-        tnh = self._makeAndSetInstance( 'Not Hidden')
+        self._makeAndSetInstance('Hidden', global_allow=0)
+        self._makeAndSetInstance('Not Hidden')
         # make sure we're normally hidden but everything else is visible
         self.failIf     ( tnf.allowType( 'Hidden' ) )
         self.failUnless ( tnf.allowType( 'Not Hidden') )



More information about the checkins mailing list