[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - finished converting tools into local utilities

Yvo Schubbe y.2011 at wcm-solutions.de
Mon Sep 26 03:51:14 EST 2011


Log message for revision 122940:
  - finished converting tools into local utilities

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py
  U   Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py
  UU  Products.CMFCore/trunk/Products/CMFCore/exportimport/cachingpolicymgr.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/configure.zcml
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/contenttyperegistry.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cachingpolicymgr.py
  U   Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_contenttyperegistry.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_CachingPolicyManager.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSFile.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSImage.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.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/utils.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2011-09-26 08:51:14 UTC (rev 122940)
@@ -7,10 +7,7 @@
 - exportimport.tests.test_mailhost:  Accomodate 'smtp_queue' and
   'smtp_queue_directory' exports (newly added in GenericSetup).
 
-- tools: Converted several tools into utilities.
-  ActionsTool, CatalogTool, CookieCrumbler, MemberDataTool, MembershipTool,
-  RegistrationTool, SkinsTool, TypesTool, URLTool and WorkflowTool are now
-  local utilities.
+- tools: Converted all tools into local utilities.
 
 - MemberDataTool: Changed property modes to 'w' and added 'fullname' property.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/ContentTypeRegistry.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -31,6 +31,7 @@
 from Products.CMFCore.interfaces import ITypesTool
 from Products.CMFCore.permissions import ManagePortal
 from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import registerToolInterface
 
 
 class MajorMinorPredicate( SimpleItem ):
@@ -547,7 +548,8 @@
 
         return None
 
-InitializeClass( ContentTypeRegistry )
+InitializeClass(ContentTypeRegistry)
+registerToolInterface('content_type_registry', IContentTypeRegistry)
 
 
 def manage_addRegistry( self, REQUEST=None ):

Modified: Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/PortalFolder.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -24,6 +24,7 @@
 from OFS.Folder import Folder
 from OFS.OrderSupport import OrderSupport
 from zope.component import getUtility
+from zope.component import queryUtility
 from zope.component.factory import Factory
 from zope.interface import implements
 
@@ -32,6 +33,7 @@
 from Products.CMFCore.exceptions import AccessControl_Unauthorized
 from Products.CMFCore.exceptions import BadRequest
 from Products.CMFCore.exceptions import zExceptions_Unauthorized
+from Products.CMFCore.interfaces import IContentTypeRegistry
 from Products.CMFCore.interfaces import IFolderish
 from Products.CMFCore.interfaces import IMutableMinimalDublinCore
 from Products.CMFCore.interfaces import ISiteRoot
@@ -44,7 +46,6 @@
 from Products.CMFCore.permissions import ManageProperties
 from Products.CMFCore.permissions import View
 from Products.CMFCore.utils import _checkPermission
-from Products.CMFCore.utils import getToolByName
 
 
 class PortalFolderBase(DynamicType, OpaqueItemManager, Folder):
@@ -265,11 +266,11 @@
         Returns -- Bare and empty object of the appropriate type (or None, if
         we don't know what to do)
         """
-        registry = getToolByName(self, 'content_type_registry', None)
-        if registry is None:
+        ctr = queryUtility(IContentTypeRegistry)
+        if ctr is None:
             return None
 
-        typeObjectName = registry.findTypeName( name, typ, body )
+        typeObjectName = ctr.findTypeName(name, typ, body)
         if typeObjectName is None:
             return None
 

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/cachingpolicymgr.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/cachingpolicymgr.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/cachingpolicymgr.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -11,11 +11,10 @@
 #
 ##############################################################################
 """Caching policy manager xml adapters and setup handlers.
-
-$Id$
 """
 
 from zope.component import adapts
+from zope.component import getSiteManager
 from zope.component import queryMultiAdapter
 
 from Products.GenericSetup.interfaces import INode
@@ -27,7 +26,6 @@
 
 from Products.CMFCore.interfaces import ICachingPolicy
 from Products.CMFCore.interfaces import ICachingPolicyManager
-from Products.CMFCore.utils import getToolByName
 
 
 class CachingPolicyNodeAdapter(NodeAdapterBase):
@@ -143,7 +141,7 @@
 
     def _extractCachingPolicies(self):
         fragment = self._doc.createDocumentFragment()
-        for policy_id, policy in self.context.listPolicies():
+        for _policy_id, policy in self.context.listPolicies():
             exporter = queryMultiAdapter((policy, self.environ), INode)
             if exporter:
                 fragment.appendChild(exporter.node)
@@ -172,8 +170,8 @@
 def importCachingPolicyManager(context):
     """Import caching policy manager settings from an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'caching_policy_manager', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ICachingPolicyManager)
     if tool is None:
         logger = context.getLogger('cachingpolicies')
         logger.debug('Nothing to import.')
@@ -184,8 +182,8 @@
 def exportCachingPolicyManager(context):
     """Export caching policy manager settings as an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'caching_policy_manager', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(ICachingPolicyManager)
     if tool is None:
         logger = context.getLogger('cachingpolicies')
         logger.debug('Nothing to export.')


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

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/configure.zcml
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/configure.zcml	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/configure.zcml	2011-09-26 08:51:14 UTC (rev 122940)
@@ -63,7 +63,7 @@
       title="Caching Policies"
       description="Import caching policy manager's policies."
       handler="Products.CMFCore.exportimport.cachingpolicymgr.importCachingPolicyManager">
-    <depends name="toolset"/>
+    <depends name="componentregistry"/>
   </genericsetup:importStep>
 
   <genericsetup:exportStep
@@ -181,7 +181,7 @@
       title="Types Tool"
       description="Import types tool's type information objects."
       handler="Products.CMFCore.exportimport.typeinfo.importTypesTool">
-    <depends name="toolset"/>
+    <depends name="componentregistry"/>
   </genericsetup:importStep>
 
   <genericsetup:exportStep

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/contenttyperegistry.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/contenttyperegistry.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/contenttyperegistry.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -14,6 +14,7 @@
 """
 
 from zope.component import adapts
+from zope.component import getSiteManager
 
 from Products.GenericSetup.interfaces import ISetupEnviron
 from Products.GenericSetup.utils import exportObjects
@@ -21,7 +22,6 @@
 from Products.GenericSetup.utils import XMLAdapterBase
 
 from Products.CMFCore.interfaces import IContentTypeRegistry
-from Products.CMFCore.utils import getToolByName
 
 
 class ContentTypeRegistryXMLAdapter(XMLAdapterBase):
@@ -132,8 +132,8 @@
 def importContentTypeRegistry(context):
     """Import content type registry settings from an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'content_type_registry', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(IContentTypeRegistry)
     if tool is None:
         logger = context.getLogger('contenttypes')
         logger.debug('Nothing to import.')
@@ -144,8 +144,8 @@
 def exportContentTypeRegistry(context):
     """Export content type registry settings as an XML file.
     """
-    site = context.getSite()
-    tool = getToolByName(site, 'content_type_registry', None)
+    sm = getSiteManager(context.getSite())
+    tool = sm.queryUtility(IContentTypeRegistry)
     if tool is None:
         logger = context.getLogger('contenttypes')
         logger.debug('Nothing to export.')

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cachingpolicymgr.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cachingpolicymgr.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cachingpolicymgr.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -17,6 +17,7 @@
 import Testing
 
 from OFS.Folder import Folder
+from zope.component import getSiteManager
 
 from Products.GenericSetup.testing import BodyAdapterTestCase
 from Products.GenericSetup.testing import NodeAdapterTestCase
@@ -24,6 +25,8 @@
 from Products.GenericSetup.tests.common import DummyExportContext
 from Products.GenericSetup.tests.common import DummyImportContext
 
+from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
+from Products.CMFCore.interfaces import ICachingPolicyManager
 from Products.CMFCore.testing import ExportImportZCMLLayer
 
 _CP_XML = """\
@@ -84,8 +87,6 @@
                       'object/modified', 600, 0, 0, 0, '', '')
 
     def setUp(self):
-        from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
-
         self._obj = CachingPolicyManager()
         self._BODY = _CPM_BODY
 
@@ -121,15 +122,12 @@
        PREDICATE, S_MAX_AGE_SECS, VARY)
 
     def _initSite(self, with_policy=False):
-        from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
+        site = Folder(id='site').__of__(self.app)
+        cpm = CachingPolicyManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
 
-        self.root.site = Folder(id='site')
-        site = self.root.site
-        mgr = CachingPolicyManager()
-        site._setObject( mgr.getId(), mgr )
-
         if with_policy:
-            mgr.addPolicy( policy_id=self.POLICY_ID
+            cpm.addPolicy(policy_id=self.POLICY_ID
                          , predicate=self.PREDICATE
                          , mtime_func=self.MTIME_FUNC
                          , max_age_secs=self.MAX_AGE_SECS
@@ -149,7 +147,7 @@
                          , post_check=self.POST_CHECK
                          )
 
-        return site
+        return site, cpm
 
 
 class exportCachingPolicyManagerTests(_CachingPolicyManagerSetup):
@@ -160,7 +158,7 @@
         from Products.CMFCore.exportimport.cachingpolicymgr \
                 import exportCachingPolicyManager
 
-        site = self._initSite(with_policy=False)
+        site, _cpm = self._initSite(with_policy=False)
         context = DummyExportContext(site)
         exportCachingPolicyManager(context)
 
@@ -174,7 +172,7 @@
         from Products.CMFCore.exportimport.cachingpolicymgr \
                 import exportCachingPolicyManager
 
-        site = self._initSite(with_policy=True)
+        site, _cpm = self._initSite(with_policy=True)
         context = DummyExportContext(site)
         exportCachingPolicyManager(context)
 
@@ -193,8 +191,7 @@
         from Products.CMFCore.exportimport.cachingpolicymgr \
                 import importCachingPolicyManager
 
-        site = self._initSite(with_policy=False)
-        cpm = site.caching_policy_manager
+        site, cpm = self._initSite(with_policy=False)
         self.assertEqual(len(cpm.listPolicies()), 0)
 
         context = DummyImportContext(site)
@@ -202,7 +199,7 @@
         importCachingPolicyManager(context)
 
         self.assertEqual(len(cpm.listPolicies()), 1)
-        policy_id, policy = cpm.listPolicies()[0]
+        _policy_id, policy = cpm.listPolicies()[0]
         self.assertEqual(policy.getPolicyId(), self.POLICY_ID)
         self.assertEqual(policy.getPredicate(), self.PREDICATE)
         self.assertEqual(policy.getMTimeFunc(), self.MTIME_FUNC)

Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_contenttyperegistry.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_contenttyperegistry.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_contenttyperegistry.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -17,12 +17,14 @@
 import Testing
 
 from OFS.Folder import Folder
+from zope.component import getSiteManager
 
 from Products.GenericSetup.testing import BodyAdapterTestCase
 from Products.GenericSetup.tests.common import BaseRegistryTests
 from Products.GenericSetup.tests.common import DummyExportContext
 from Products.GenericSetup.tests.common import DummyImportContext
 
+from Products.CMFCore.interfaces import IContentTypeRegistry
 from Products.CMFCore.testing import ExportImportZCMLLayer
 
 _TEST_PREDICATES = (
@@ -165,20 +167,19 @@
     def _initSite(self, mit_predikat=False):
         from Products.CMFCore.ContentTypeRegistry import ContentTypeRegistry
 
-        self.root.site = Folder(id='site')
-        site = self.root.site
+        site = Folder(id='site').__of__(self.app)
         ctr = ContentTypeRegistry()
-        site._setObject( ctr.getId(), ctr )
+        getSiteManager().registerUtility(ctr, IContentTypeRegistry)
 
         if mit_predikat:
             for (predicate_id, predicate_type, edit_args, content_type_name
                 ) in _TEST_PREDICATES:
-                ctr.addPredicate(predicate_id, predicate_type) 
+                ctr.addPredicate(predicate_id, predicate_type)
                 predicate = ctr.getPredicate(predicate_id)
                 predicate.edit(*edit_args)
                 ctr.assignTypeName(predicate_id, content_type_name)
 
-        return site
+        return site, ctr
 
 
 class exportContentTypeRegistryTests(_ContentTypeRegistrySetup):
@@ -189,7 +190,7 @@
         from Products.CMFCore.exportimport.contenttyperegistry \
                 import exportContentTypeRegistry
 
-        site = self._initSite(mit_predikat=False)
+        site, _ctr = self._initSite(mit_predikat=False)
         context = DummyExportContext(site)
         exportContentTypeRegistry(context)
 
@@ -203,7 +204,7 @@
         from Products.CMFCore.exportimport.contenttyperegistry \
                 import exportContentTypeRegistry
 
-        site = self._initSite(mit_predikat=True)
+        site, _ctr = self._initSite(mit_predikat=True)
         context = DummyExportContext(site)
         exportContentTypeRegistry(context)
 
@@ -225,8 +226,7 @@
         from Products.CMFCore.exportimport.contenttyperegistry \
                 import importContentTypeRegistry
 
-        site = self._initSite(mit_predikat=False)
-        ctr = site.content_type_registry
+        site, ctr = self._initSite(mit_predikat=False)
         self.assertEqual(len(ctr.listPredicates()), 0)
 
         context = DummyImportContext(site)
@@ -260,8 +260,7 @@
         from Products.CMFCore.exportimport.contenttyperegistry \
                 import importContentTypeRegistry
 
-        site = self._initSite(mit_predikat=True)
-        ctr = site.content_type_registry
+        site, ctr = self._initSite(mit_predikat=True)
         self.assertEqual(len(ctr.listPredicates()), len(_TEST_PREDICATES))
         self.assertEqual(ctr.predicate_ids, ('plain_text', 'stylesheets',
                                              'images', 'logfiles'))
@@ -278,8 +277,7 @@
         from Products.CMFCore.exportimport.contenttyperegistry \
                 import importContentTypeRegistry
 
-        site = self._initSite(mit_predikat=True)
-        ctr = site.content_type_registry
+        site, ctr = self._initSite(mit_predikat=True)
         self.assertEqual(len(ctr.listPredicates()), len(_TEST_PREDICATES))
         self.assertEqual(ctr.predicate_ids, ('plain_text', 'stylesheets',
                                              'images', 'logfiles'))

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CachingPolicyManager.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CachingPolicyManager.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CachingPolicyManager.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -38,6 +38,7 @@
 from Products.CMFCore.tests.base.dummy import DummySite
 from Products.CMFCore.tests.base.dummy import DummyTool
 from Products.CMFCore.tests.base.testcase import FSDVTest
+from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 ACCLARK = DateTime( '2001/01/01' )
@@ -101,6 +102,7 @@
 
     def _makeContext( self, **kw ):
         from Products.CMFCore.CachingPolicyManager import createCPContext
+
         return createCPContext( DummyContent2(self._epoch)
                               , 'foo_view', kw, self._epoch )
 
@@ -125,7 +127,6 @@
                         , rfc1123_date(self._epoch.timeTime()) )
 
     def test_noPassPredicate( self ):
-
         policy = self._makePolicy( 'noPassPredicate', predicate='nothing' )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -133,7 +134,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_typePredicate( self ):
-
         policy = self._makePolicy( 'typePredicate'
                            , predicate='python:object.Type() == "Dummy"' )
         context = self._makeContext()
@@ -144,7 +144,6 @@
         self.assertEqual( headers[0][1] , rfc1123_date(self._epoch.timeTime()) )
 
     def test_typePredicateMiss( self ):
-
         policy = self._makePolicy( 'typePredicate'
                         , predicate='python:object.Type() == "Foolish"' )
         context = self._makeContext()
@@ -153,7 +152,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_viewPredicate( self ):
-
         policy = self._makePolicy( 'viewPredicate'
                                  , predicate='python:view == "foo_view"' )
         context = self._makeContext()
@@ -165,7 +163,6 @@
                         , rfc1123_date(self._epoch.timeTime()) )
 
     def test_viewPredicateMiss( self ):
-
         policy = self._makePolicy( 'viewPredicateMiss'
                            , predicate='python:view == "bar_view"' )
         context = self._makeContext()
@@ -174,7 +171,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_kwPredicate( self ):
-
         policy = self._makePolicy( 'kwPredicate'
                                  , predicate='python:"foo" in keywords.keys()' )
         context = self._makeContext( foo=1 )
@@ -186,7 +182,6 @@
                         , rfc1123_date(self._epoch.timeTime()) )
 
     def test_kwPredicateMiss( self ):
-
         policy = self._makePolicy( 'kwPredicateMiss'
                                  , predicate='python:"foo" in keywords.keys()' )
         context = self._makeContext( bar=1 )
@@ -200,7 +195,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_mtimeFunc( self ):
-
         policy = self._makePolicy( 'mtimeFunc'
                                  , mtime_func='string:2001/01/01' )
         context = self._makeContext()
@@ -212,7 +206,6 @@
                         , rfc1123_date(ACCLARK.timeTime()) )
 
     def test_mtimeFuncNone( self ):
-
         policy = self._makePolicy( 'mtimeFuncNone'
                                  , mtime_func='nothing' )
         context = self._makeContext()
@@ -221,7 +214,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_maxAge( self ):
-
         policy = self._makePolicy( 'aged', max_age_secs=86400 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -237,7 +229,6 @@
         self.assertEqual( headers[2][1] , 'max-age=86400' )
 
     def test_sMaxAge( self ):
-
         policy = self._makePolicy( 's_aged', s_max_age_secs=86400 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -251,7 +242,6 @@
         self.assertEqual(policy.getSMaxAgeSecs(), 86400)
 
     def test_noCache( self ):
-
         policy = self._makePolicy( 'noCache', no_cache=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -266,7 +256,6 @@
         self.assertEqual( headers[2][1] , 'no-cache' )
 
     def test_noStore( self ):
-
         policy = self._makePolicy( 'noStore', no_store=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -279,7 +268,6 @@
         self.assertEqual( headers[1][1] , 'no-store' )
 
     def test_mustRevalidate( self ):
-
         policy = self._makePolicy( 'mustRevalidate', must_revalidate=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -292,7 +280,6 @@
         self.assertEqual( headers[1][1] , 'must-revalidate' )
 
     def test_proxyRevalidate( self ):
-
         policy = self._makePolicy( 'proxyRevalidate', proxy_revalidate=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -306,7 +293,6 @@
         self.assertEqual(policy.getProxyRevalidate(), 1)
 
     def test_public( self ):
-
         policy = self._makePolicy( 'public', public=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -320,7 +306,6 @@
         self.assertEqual(policy.getPublic(), 1)
 
     def test_private( self ):
-
         policy = self._makePolicy( 'private', private=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -334,7 +319,6 @@
         self.assertEqual(policy.getPrivate(), 1)
 
     def test_noTransform( self ):
-
         policy = self._makePolicy( 'noTransform', no_transform=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -348,7 +332,6 @@
         self.assertEqual(policy.getNoTransform(), 1)
 
     def test_lastModified( self ):
-
         policy = self._makePolicy( 'lastModified', last_modified=0 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -357,7 +340,6 @@
         self.assertEqual(policy.getLastModified(), 0)
 
     def test_preCheck( self ):
-
         policy = self._makePolicy( 'preCheck', pre_check=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -372,7 +354,6 @@
         self.assertEqual(policy.getPostCheck(), None)
 
     def test_postCheck( self ):
-
         policy = self._makePolicy( 'postCheck', post_check=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -387,7 +368,6 @@
         self.assertEqual(policy.getPreCheck(), None)
 
     def test_ETag( self ):
-
         # With an empty etag_func, no ETag should be produced
         policy = self._makePolicy( 'ETag', etag_func='' )
         context = self._makeContext()
@@ -410,7 +390,6 @@
         self.assertEqual( headers[1][1], 'foo' )
 
     def test_combined( self ):
-
         policy = self._makePolicy( 'noStore', no_cache=1, no_store=1 )
         context = self._makeContext()
         headers = policy.getHeaders( context )
@@ -429,11 +408,14 @@
 
     layer = TraversingZCMLLayer
 
-    def _makeOne(self, *args, **kw):
+    def _getTargetClass(self):
         from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
 
-        return CachingPolicyManager(*args, **kw)
+        return CachingPolicyManager
 
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
     def setUp(self):
         self._epoch = DateTime()
         getSiteManager().registerUtility(DummyTool(), IMembershipTool)
@@ -448,7 +430,6 @@
         verifyClass(ICachingPolicyManager, CachingPolicyManager)
 
     def test_empty( self ):
-
         mgr = self._makeOne()
 
         self.assertEqual( len( mgr.listPolicies() ), 0 )
@@ -466,7 +447,6 @@
         self.assertRaises( KeyError, mgr._reorderPolicy, 'xyzzy', -1 )
 
     def test_addAndUpdatePolicy( self ):
-
         mgr = self._makeOne()
         mgr.addPolicy('first', 'python:1', 'mtime', 1, 0, 1, 0, 'vary',
                       'etag', None, 2, 1, 0, 1, 0, 1, 0, 2, 3)
@@ -513,7 +493,6 @@
         self.assertEqual(p.getPostCheck(), 2)
 
     def test_reorder( self ):
-
         mgr = self._makeOne()
 
         policy_ids = ( 'foo', 'bar', 'baz', 'qux' )
@@ -532,7 +511,6 @@
         self.assertEqual( ids, ( 'foo', 'baz', 'qux', 'bar' ) )
 
     def _makeOneWithPolicies( self ):
-
         mgr = self._makeOne()
 
         policy_tuples = ( ( 'foo', None  )
@@ -549,7 +527,6 @@
         return mgr
 
     def test_lookupNoMatch( self ):
-
         mgr = self._makeOneWithPolicies()
         headers = mgr.getHTTPCachingHeaders( content=DummyContent2(self._epoch)
                                            , view_method='foo_view'
@@ -559,7 +536,6 @@
         self.assertEqual( len( headers ), 0 )
 
     def test_lookupMatchFoo( self ):
-
         mgr = self._makeOneWithPolicies()
         headers = mgr.getHTTPCachingHeaders( content=DummyContent2(self._epoch)
                                            , view_method='foo_view'
@@ -572,7 +548,6 @@
                         , rfc1123_date(self._epoch.timeTime()) )
 
     def test_lookupMatchBar( self ):
-
         mgr = self._makeOneWithPolicies()
         headers = mgr.getHTTPCachingHeaders( content=DummyContent2(self._epoch)
                                            , view_method='foo_view'
@@ -590,7 +565,6 @@
         self.assertEqual( headers[2][1], 'max-age=0' )
 
     def test_lookupMatchBaz( self ):
-
         mgr = self._makeOneWithPolicies()
         headers = mgr.getHTTPCachingHeaders( content=DummyContent2(self._epoch)
                                            , view_method='foo_view'
@@ -611,7 +585,6 @@
         self.assertEqual( headers[2][1] , 'max-age=3600' )
 
     def test_lookupMatchQux( self ):
-
         mgr = self._makeOneWithPolicies()
         headers = mgr.getHTTPCachingHeaders( content=DummyContent2(self._epoch)
                                            , view_method='foo_view'
@@ -632,21 +605,31 @@
         self.assertEqual( headers[2][1] , 'max-age=86400' )
 
 
-class CachingPolicyManager304Tests(TransactionalTest, FSDVTest):
+class CachingPolicyManager304Tests(SecurityTest, FSDVTest):
 
-    layer = FunctionalZCMLLayer
+    layer = TraversingZCMLLayer
 
+    def _getTargetClass(self):
+        from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
+
+        return CachingPolicyManager
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
     def setUp(self):
-        from Products.CMFCore import CachingPolicyManager
+        from Products.CMFCore.interfaces import ICachingPolicyManager
 
-        TransactionalTest.setUp(self)
+        SecurityTest.setUp(self)
         FSDVTest.setUp(self)
 
         now = DateTime()
 
         # Create a fake portal and the tools we need
         self.portal = DummySite(id='portal').__of__(self.app)
+        cpm = self._makeOne()
         sm = getSiteManager()
+        sm.registerUtility(cpm, ICachingPolicyManager)
         sm.registerUtility(DummyTool(), IMembershipTool)
         sm.registerUtility(DummyTool(), ITypesTool)
 
@@ -672,9 +655,6 @@
         self.portal.doc2.modified_date = now
         self.portal.doc3.modified_date = now
 
-        CachingPolicyManager.manage_addCachingPolicyManager(self.portal)
-        cpm = self.portal.caching_policy_manager
-
         # This policy only applies to doc1. It will not emit any ETag header
         # but it enables If-modified-since handling.
         cpm.addPolicy(policy_id = 'policy_no_etag',
@@ -715,11 +695,8 @@
                       enable_304s = 0)
 
     def tearDown(self):
-        sm = getSiteManager()
-        sm.unregisterUtility(provided=IMembershipTool)
-        sm.registerUtility(provided=ITypesTool)
-        TransactionalTest.tearDown(self)
         FSDVTest.tearDown(self)
+        SecurityTest.tearDown(self)
 
     def _cleanup(self):
         # Clean up request and response
@@ -890,16 +867,25 @@
 
     layer = TraversingZCMLLayer
 
+    def _getTargetClass(self):
+        from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
+
+        return CachingPolicyManager
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
     def setUp(self):
-        from Products.CMFCore import CachingPolicyManager
+        from Products.CMFCore.interfaces import ICachingPolicyManager
 
         FSObjMaker.setUp(self)
         TransactionalTest.setUp(self)
 
         # Create a fake portal and the tools we need
         self.portal = DummySite(id='portal').__of__(self.app)
-        CachingPolicyManager.manage_addCachingPolicyManager(self.portal)
+        self.cpm = self._makeOne()
         sm = getSiteManager()
+        sm.registerUtility(self.cpm, ICachingPolicyManager)
         sm.registerUtility(DummyTool(), IMembershipTool)
         sm.registerUtility(DummyTool(), ITypesTool)
 
@@ -912,7 +898,7 @@
         # set up site
         portal = self.portal
         now = DateTime()
-        cpm = portal.caching_policy_manager
+        cpm = self.cpm
         cpm.addPolicy(policy_id = 'policy_op2',
                       predicate = 'python:view=="output_page_2"',
                       mtime_func = '',
@@ -947,7 +933,7 @@
         # not activate the bug because RESPONSE is not passed in
         portal = self.portal
         now = DateTime()
-        cpm = portal.caching_policy_manager
+        cpm = self.cpm
         cpm.addPolicy(policy_id = 'policy_op4',
                       predicate = 'python:view=="output_page_4"',
                       mtime_func = '',
@@ -985,7 +971,7 @@
         # set up site
         portal = self.portal
         now = DateTime()
-        cpm = portal.caching_policy_manager
+        cpm = self.cpm
         cpm.addPolicy(policy_id = 'policy_nv1',
                       predicate = 'python:view=="nested_view_1"',
                       mtime_func = '',
@@ -1027,7 +1013,7 @@
         # set up site
         now = DateTime()
         portal = self.portal
-        cpm = portal.caching_policy_manager
+        cpm = self.cpm
         cpm.addPolicy(policy_id = 'policy_nv1',
                       predicate = 'python:view=="nested_view_1"',
                       mtime_func = '',
@@ -1084,7 +1070,7 @@
             doc.modified_date = modified_date
             self.portal._setObject(id, doc)
 
-        cpm = self.portal.caching_policy_manager
+        cpm = self.cpm
 
         # This policy only applies to doc2.
         cpm.addPolicy(policy_id = 'policy_doc2',
@@ -1146,7 +1132,7 @@
             doc.modified_date = modified_date
             self.portal._setObject(id, doc)
 
-        cpm = self.portal.caching_policy_manager
+        cpm = self.cpm
 
         # This policy only applies to doc1.
         cpm.addPolicy(policy_id = 'policy_doc1',
@@ -1211,8 +1197,16 @@
 
     layer = FunctionalZCMLLayer
 
+    def _getTargetClass(self):
+        from Products.CMFCore.CachingPolicyManager import CachingPolicyManager
+
+        return CachingPolicyManager
+
+    def _makeOne(self, *args, **kw):
+        return self._getTargetClass()(*args, **kw)
+
     def setUp(self):
-        from Products.CMFCore import CachingPolicyManager
+        from Products.CMFCore.interfaces import ICachingPolicyManager
 
         TransactionalTest.setUp(self)
 
@@ -1220,9 +1214,11 @@
         self.portal = DummySite(id='portal').__of__(self.app)
         self.portal._setObject('doc1', CacheableDummyContent('doc1'))
         self.portal._setObject('doc2', CacheableDummyContent('doc2'))
-        CachingPolicyManager.manage_addCachingPolicyManager(self.portal)
-        cpm = self.portal.caching_policy_manager
-        getSiteManager().registerUtility(DummyTool(), IMembershipTool)
+        cpm = self._makeOne()
+        self.portal._setObject('caching_policy_manager', cpm)
+        sm = getSiteManager()
+        sm.registerUtility(cpm, ICachingPolicyManager)
+        sm.registerUtility(DummyTool(), IMembershipTool)
 
         # This policy only applies to doc1. It will not emit any ETag header
         # but it enables If-modified-since handling.
@@ -1238,11 +1234,14 @@
                       enable_304s=0)
 
     def tearDown(self):
-        getSiteManager().unregisterUtility(provided=IMembershipTool)
+        from Products.CMFCore.interfaces import ICachingPolicyManager
+
+        sm = getSiteManager()
+        sm.unregisterUtility(provided=ICachingPolicyManager)
+        sm.unregisterUtility(provided=IMembershipTool)
         TransactionalTest.tearDown(self)
 
     def test_empty(self):
-
         from Products.CMFCore.CachingPolicyManager import CPMCache
 
         cpm = self.portal.caching_policy_manager

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -23,85 +23,88 @@
 from DateTime import DateTime
 from OFS.Folder import Folder
 from Products.StandardCacheManagers import RAMCacheManager
+from zope.component import getSiteManager
 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.interfaces import ICachingPolicyManager
 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.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
 class FSDTMLMaker(FSDVTest):
 
     def _makeOne( self, id, filename ):
+        from Products.CMFCore.FSDTMLMethod import FSDTMLMethod
+
         path = path_join(self.skin_path_name, filename)
         metadata = FSMetadata(path)
         metadata.read()
         return FSDTMLMethod( id, path, properties=metadata.getProperties() )
 
 
-class FSDTMLMethodTests(RequestTest, FSDTMLMaker):
+class FSDTMLMethodTests(TransactionalTest, FSDTMLMaker):
 
     def setUp(self):
+        TransactionalTest.setUp(self)
         FSDTMLMaker.setUp(self)
-        RequestTest.setUp(self)
         setHooks()
 
     def tearDown(self):
-        RequestTest.tearDown(self)
+        cleanUp()
         FSDTMLMaker.tearDown(self)
+        TransactionalTest.tearDown(self)
 
-    def _setupCachingPolicyManager(self, cpm_object):
-        self.root.caching_policy_manager = cpm_object
-
-    def test_Call( self ):
-        script = self._makeOne( 'testDTML', 'testDTML.dtml' )
+    def test___call__(self):
+        script = self._makeOne('testDTML', 'testDTML.dtml')
         script = script.__of__(self.app)
         self.assertEqual(script(self.app, self.REQUEST), 'nohost\n')
 
-    def test_caching( self ):
+    def test_caching(self):
         #   Test HTTP caching headers.
-        self._setupCachingPolicyManager(DummyCachingManager())
-        original_len = len( self.RESPONSE.headers )
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        original_len = len(self.RESPONSE.headers)
+        obj = self._makeOne('testDTML', 'testDTML.dtml')
+        obj = obj.__of__(self.app)
+        obj(self.app, self.REQUEST, self.RESPONSE)
+        self.failUnless(len(self.RESPONSE.headers) >= original_len + 2)
+        self.failUnless('foo' in self.RESPONSE.headers.keys())
+        self.failUnless('bar' in self.RESPONSE.headers.keys())
+
+    def test_ownership(self):
         script = self._makeOne('testDTML', 'testDTML.dtml')
-        script = script.__of__(self.root)
-        script(self.root, self.REQUEST, self.RESPONSE)
-        self.failUnless( len( self.RESPONSE.headers ) >= original_len + 2 )
-        self.failUnless( 'foo' in self.RESPONSE.headers.keys() )
-        self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
-
-    def test_ownership( self ):
-        script = self._makeOne( 'testDTML', 'testDTML.dtml' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         # fsdtmlmethod has no owner
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
         # and ownership is not acquired [CMF/450]
-        self.root._owner= ('/foobar', 'baz')
+        self.app._owner = ('/foobar', 'baz')
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
-    def test_304_response_from_cpm( self ):
+    def test_304_response_from_cpm(self):
         # test that we get a 304 response from the cpm via this template
         mod_time = DateTime()
-        self._setupCachingPolicyManager(DummyCachingManagerWithPolicy())
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         content = DummyContent(id='content')
         content.modified_date = mod_time
-        content = content.__of__(self.root)
+        content = content.__of__(self.app)
         script = self._makeOne('testDTML', 'testDTML.dtml')
         script = script.__of__(content)
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time+3600 )
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time + 3600)
         data = script(content, self.REQUEST, self.RESPONSE)
 
-        self.assertEqual( data, '' )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        self.assertEqual(data, '')
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
 
 class FSDTMLMethodCustomizationTests(SecurityTest, FSDTMLMaker):
@@ -125,12 +128,12 @@
         self.failUnless( 'testDTML' in self.custom.objectIds() )
 
     def test_customize_alternate_root( self ):
-        self.root.other = Folder('other')
+        self.app.other = Folder('other')
 
-        self.fsDTML.manage_doCustomize( folder_path='other', root=self.root )
+        self.fsDTML.manage_doCustomize(folder_path='other', root=self.app)
 
         self.failIf( 'testDTML' in self.custom.objectIds() )
-        self.failUnless( 'testDTML' in self.root.other.objectIds() )
+        self.failUnless( 'testDTML' in self.app.other.objectIds() )
 
     def test_customize_fspath_as_dot( self ):
 
@@ -150,7 +153,7 @@
     def test_customize_caching(self):
         # Test to ensure that cache manager associations survive customizing
         cache_id = 'gofast'
-        RAMCacheManager.manage_addRAMCacheManager( self.root
+        RAMCacheManager.manage_addRAMCacheManager( self.app
                                                  , cache_id
                                                  , REQUEST=None
                                                  )

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSFile.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSFile.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSFile.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -14,36 +14,42 @@
 """
 
 import unittest
+import Testing
 
 import os
+
 from App.Common import rfc1123_date
+from zope.component import getSiteManager
+from zope.testing.cleanup import cleanUp
 
+from Products.CMFCore.interfaces import ICachingPolicyManager
+from Products.CMFCore.tests.base.dummy import DummyCachingManager
+from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
 from Products.CMFCore.tests.base.dummy import FAKE_ETAG
 from Products.CMFCore.tests.base.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
-class FSFileTests(RequestTest, FSDVTest):
+class FSFileTests(TransactionalTest, FSDVTest):
 
     def setUp(self):
+        TransactionalTest.setUp(self)
         FSDVTest.setUp(self)
-        RequestTest.setUp(self)
 
     def tearDown(self):
-        RequestTest.tearDown(self)
+        cleanUp()
         FSDVTest.tearDown(self)
+        TransactionalTest.tearDown(self)
 
-    def _makeOne( self, id, filename ):
+    def _makeOne(self, id, filename):
         from Products.CMFCore.FSFile import FSFile
         from Products.CMFCore.FSMetadata import FSMetadata
 
         full_path = os.path.join(self.skin_path_name, filename)
         metadata = FSMetadata(full_path)
         metadata.read()
-        fsfile_ob = FSFile(id, full_path, properties=metadata.getProperties())
+        return FSFile(id, full_path, properties=metadata.getProperties())
 
-        return fsfile_ob
-
     def _extractFile( self, filename ):
         path = os.path.join(self.skin_path_name, filename)
         f = open( path, 'rb' )
@@ -55,19 +61,18 @@
         return path, data
 
     def test_ctor( self ):
+        _path, ref = self._extractFile('test_file.swf')
 
-        path, ref = self._extractFile('test_file.swf')
-
         file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
 
         self.assertEqual( file.get_size(), len( ref ) )
         self.assertEqual( file._readFile(0), ref )
 
     def test_str( self ):
-        path, ref = self._extractFile('test_file.swf')
+        _path, ref = self._extractFile('test_file.swf')
         file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
         self.assertEqual( len(str(file)), len( ref ) )
 
     def test_index_html( self ):
@@ -75,7 +80,7 @@
         mod_time = os.stat( path )[ 8 ]
 
         file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
 
         data = file.index_html( self.REQUEST, self.RESPONSE )
 
@@ -90,11 +95,11 @@
                         , rfc1123_date( mod_time ) )
 
     def test_index_html_with_304( self ):
-        path, ref = self._extractFile('test_file.swf')
+        path, _ref = self._extractFile('test_file.swf')
         mod_time = os.stat( path )[ 8 ]
 
         file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
 
         self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
                             ] = '%s;' % rfc1123_date( mod_time+3600 )
@@ -104,15 +109,15 @@
         self.assertEqual( data, '' )
         # test that we don't supply a content-length
         self.assertEqual( self.RESPONSE.getHeader('Content-Length'.lower()),
-                                               None )
+                                                  None )
         self.assertEqual( self.RESPONSE.getStatus(), 304 )
 
     def test_index_html_without_304( self ):
-        path, ref = self._extractFile('test_file.swf')
+        path, _ref = self._extractFile('test_file.swf')
         mod_time = os.stat( path )[ 8 ]
 
         file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
 
         self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
                             ] = '%s;' % rfc1123_date( mod_time-3600 )
@@ -122,54 +127,53 @@
         self.failUnless( data, '' )
         self.assertEqual( self.RESPONSE.getStatus(), 200 )
 
-    def test_index_html_with_304_from_cpm( self ):
-        from Products.CMFCore.tests.base.dummy \
-            import DummyCachingManagerWithPolicy
-        self.root.caching_policy_manager = DummyCachingManagerWithPolicy()
-        path, ref = self._extractFile('test_file.swf')
-        file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+    def test_index_html_with_304_from_cpm(self):
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        path, _ref = self._extractFile('test_file.swf')
+        file = self._makeOne('test_file', 'test_file.swf')
+        file = file.__of__(self.app)
 
-        mod_time = os.stat( path )[ 8 ]
+        mod_time = os.stat(path)[8]
 
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time )
-        self.REQUEST.environ[ 'IF_NONE_MATCH'
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time)
+        self.REQUEST.environ['IF_NONE_MATCH'
                             ] = '%s;' % FAKE_ETAG
 
-        data = file.index_html( self.REQUEST, self.RESPONSE )
-        self.assertEqual( len(data), 0 )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        data = file.index_html(self.REQUEST, self.RESPONSE)
+        self.assertEqual(len(data), 0)
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
-    def test_index_html_200_with_cpm( self ):
+    def test_index_html_200_with_cpm(self):
         # should behave the same as without cpm installed
-        from Products.CMFCore.tests.base.dummy import DummyCachingManager
-        self.root.caching_policy_manager = DummyCachingManager()
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         path, ref = self._extractFile('test_file.swf')
-        file = self._makeOne( 'test_file', 'test_file.swf' )
-        file = file.__of__( self.root )
+        file = self._makeOne('test_file', 'test_file.swf')
+        file = file.__of__(self.app)
 
-        mod_time = os.stat( path )[ 8 ]
+        mod_time = os.stat(path)[8]
 
-        data = file.index_html( self.REQUEST, self.RESPONSE )
+        data = file.index_html(self.REQUEST, self.RESPONSE)
 
-        self.assertEqual( len( data ), len( ref ) )
-        self.assertEqual( data, ref )
+        self.assertEqual(len(data), len(ref))
+        self.assertEqual(data, ref)
         # ICK!  'HTTPResponse.getHeader' doesn't case-flatten the key!
-        self.assertEqual( self.RESPONSE.getHeader( 'Content-Length'.lower() )
-                        , str(len(ref)) )
-        self.assertEqual( self.RESPONSE.getHeader( 'Content-Type'.lower() )
-                        , 'application/octet-stream' )
-        self.assertEqual( self.RESPONSE.getHeader( 'Last-Modified'.lower() )
-                        , rfc1123_date( mod_time ) )
+        self.assertEqual(self.RESPONSE.getHeader('Content-Length'.lower())
+                        , str(len(ref)))
+        self.assertEqual(self.RESPONSE.getHeader('Content-Type'.lower())
+                        , 'application/octet-stream')
+        self.assertEqual(self.RESPONSE.getHeader('Last-Modified'.lower())
+                        , rfc1123_date(mod_time))
 
-    def test_caching( self ):
-        from Products.CMFCore.tests.base.dummy import DummyCachingManager
-        self.root.caching_policy_manager = DummyCachingManager()
+    def test_caching(self):
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         original_len = len(self.RESPONSE.headers)
-        file = self._makeOne('test_file', 'test_file.swf')
-        file = file.__of__(self.root)
-        file.index_html(self.REQUEST, self.RESPONSE)
+        obj = self._makeOne('test_file', 'test_file.swf')
+        obj = obj.__of__(self.app)
+        obj.index_html(self.REQUEST, self.RESPONSE)
         headers = self.RESPONSE.headers
         self.failUnless(len(headers) >= original_len + 3)
         self.failUnless('foo' in headers.keys())
@@ -181,7 +185,7 @@
         mod_time = os.stat( path )[ 8 ]
 
         file = self._makeOne( 'test_file', 'test_file_two.swf' )
-        file = file.__of__( self.root )
+        file = file.__of__(self.app)
 
         data = file.index_html( self.REQUEST, self.RESPONSE )
 
@@ -197,10 +201,11 @@
 
     def test_utf8charset_detection( self ):
         import mimetypes
+
         file_name = 'testUtf8.js'
-        mtype, ignore_enc = mimetypes.guess_type(file_name)
+        mtype, _ignore_enc = mimetypes.guess_type(file_name)
         file = self._makeOne(file_name, file_name)
-        file = file.__of__(self.root)
+        file = file.__of__(self.app)
         file.index_html(self.REQUEST, self.RESPONSE)
         self.assertEqual(self.RESPONSE.getHeader('content-type'),
                          '%s; charset=utf-8' % mtype)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSImage.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSImage.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSImage.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -20,32 +20,34 @@
 from os.path import join as path_join
 
 from App.Common import rfc1123_date
+from zope.component import getSiteManager
+from zope.testing.cleanup import cleanUp
 
+from Products.CMFCore.interfaces import ICachingPolicyManager
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
 from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
 from Products.CMFCore.tests.base.dummy import FAKE_ETAG
 from Products.CMFCore.tests.base.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
-class FSImageTests(RequestTest, FSDVTest):
+class FSImageTests(TransactionalTest, FSDVTest):
 
     def setUp(self):
+        TransactionalTest.setUp(self)
         FSDVTest.setUp(self)
-        RequestTest.setUp(self)
 
     def tearDown(self):
-        RequestTest.tearDown(self)
+        cleanUp()
         FSDVTest.tearDown(self)
+        TransactionalTest.tearDown(self)
 
-    def _makeOne( self, id, filename ):
-
+    def _makeOne(self, id, filename):
         from Products.CMFCore.FSImage import FSImage
 
-        return FSImage( id, path_join(self.skin_path_name, filename) )
+        return FSImage(id, path_join(self.skin_path_name, filename))
 
     def _extractFile( self ):
-
         path = path_join(self.skin_path_name, 'test_image.gif')
         f = open( path, 'rb' )
         try:
@@ -56,11 +58,10 @@
         return path, data
 
     def test_ctor( self ):
+        _path, ref = self._extractFile()
 
-        path, ref = self._extractFile()
-
         image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        image = image.__of__(self.app)
 
         self.assertEqual( image.get_size(), len( ref ) )
         self.assertEqual( image._data, ref )
@@ -70,7 +71,7 @@
         mod_time = os.stat( path )[ 8 ]
 
         image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        image = image.__of__(self.app)
 
         data = image.index_html( self.REQUEST, self.RESPONSE )
 
@@ -85,11 +86,11 @@
                         , rfc1123_date( mod_time ) )
 
     def test_index_html_with_304( self ):
-        path, ref = self._extractFile()
+        path, _ref = self._extractFile()
         mod_time = os.stat( path )[ 8 ]
 
         image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        image = image.__of__(self.app)
 
         self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
                             ] = '%s;' % rfc1123_date( mod_time+3600 )
@@ -103,11 +104,11 @@
         self.assertEqual( self.RESPONSE.getStatus(), 304 )
 
     def test_index_html_without_304( self ):
-        path, ref = self._extractFile()
+        path, _ref = self._extractFile()
         mod_time = os.stat( path )[ 8 ]
 
         image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        image = image.__of__(self.app)
 
         self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
                             ] = '%s;' % rfc1123_date( mod_time-3600 )
@@ -117,73 +118,77 @@
         self.failUnless( data, '' )
         self.assertEqual( self.RESPONSE.getStatus(), 200 )
 
-    def test_index_html_with_304_from_cpm( self ):
-        self.root.caching_policy_manager = DummyCachingManagerWithPolicy()
-        path, ref = self._extractFile()
-        file = self._makeOne( 'test_file', 'test_image.gif' )
-        file = file.__of__( self.root )
+    def test_index_html_with_304_from_cpm(self):
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        path, _ref = self._extractFile()
+        file = self._makeOne('test_file', 'test_image.gif')
+        file = file.__of__(self.app)
 
-        mod_time = os.stat( path )[ 8 ]
+        mod_time = os.stat(path)[8]
 
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time )
-        self.REQUEST.environ[ 'IF_NONE_MATCH'
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time)
+        self.REQUEST.environ['IF_NONE_MATCH'
                             ] = '%s;' % FAKE_ETAG
 
-        data = file.index_html( self.REQUEST, self.RESPONSE )
-        self.assertEqual( len(data), 0 )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        data = file.index_html(self.REQUEST, self.RESPONSE)
+        self.assertEqual(len(data), 0)
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
-    def test_caching( self ):
-        self.root.caching_policy_manager = DummyCachingManager()
+    def test_index_html_200_with_cpm(self):
+        # should behave the same as without cpm installed
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        path, ref = self._extractFile()
+        file = self._makeOne('test_file', 'test_image.gif')
+        file = file.__of__(self.app)
+
+        mod_time = os.stat(path)[8]
+
+        data = file.index_html(self.REQUEST, self.RESPONSE)
+
+        self.assertEqual(len(data), len(ref))
+        self.assertEqual(data, ref)
+        # ICK!  'HTTPResponse.getHeader' doesn't case-flatten the key!
+        self.assertEqual(self.RESPONSE.getHeader('Content-Length'.lower())
+                        , str(len(ref)))
+        self.assertEqual(self.RESPONSE.getHeader('Content-Type'.lower())
+                        , 'image/gif')
+        self.assertEqual(self.RESPONSE.getHeader('Last-Modified'.lower())
+                        , rfc1123_date(mod_time))
+
+    def test_caching(self):
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         original_len = len(self.RESPONSE.headers)
-        image = self._makeOne('test_image', 'test_image.gif')
-        image = image.__of__(self.root)
-        image.index_html(self.REQUEST, self.RESPONSE)
+        obj = self._makeOne('test_image', 'test_image.gif')
+        obj = obj.__of__(self.app)
+        obj.index_html(self.REQUEST, self.RESPONSE)
         headers = self.RESPONSE.headers
         self.failUnless(len(headers) >= original_len + 3)
         self.failUnless('foo' in headers.keys())
         self.failUnless('bar' in headers.keys())
         self.assertEqual(headers['test_path'], '/test_image')
 
-    def test_index_html_200_with_cpm( self ):
-        self.root.caching_policy_manager = DummyCachingManagerWithPolicy()
-        path, ref = self._extractFile()
-        file = self._makeOne( 'test_file', 'test_image.gif' )
-        file = file.__of__( self.root )
-
-        mod_time = os.stat( path )[ 8 ]
-
-        data = file.index_html( self.REQUEST, self.RESPONSE )
-
-        # should behave the same as without cpm
-        self.assertEqual( len( data ), len( ref ) )
-        self.assertEqual( data, ref )
-        # ICK!  'HTTPResponse.getHeader' doesn't case-flatten the key!
-        self.assertEqual( self.RESPONSE.getHeader( 'Content-Length'.lower() )
-                        , str(len(ref)) )
-        self.assertEqual( self.RESPONSE.getHeader( 'Content-Type'.lower() )
-                        , 'image/gif' )
-        self.assertEqual( self.RESPONSE.getHeader( 'Last-Modified'.lower() )
-                        , rfc1123_date( mod_time ) )
-
-    def test_index_html_with_304_and_caching( self ):
+    def test_index_html_with_304_and_caching(self):
         # See collector #355
-        self.root.caching_policy_manager = DummyCachingManager()
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         original_len = len(self.RESPONSE.headers)
-        path, ref = self._extractFile()
-        mod_time = os.stat( path )[ 8 ]
+        path, _ref = self._extractFile()
+        image = self._makeOne('test_image', 'test_image.gif')
+        image = image.__of__(self.app)
 
-        image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        mod_time = os.stat(path)[8]
 
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time+3600 )
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time + 3600)
 
-        data = image.index_html( self.REQUEST, self.RESPONSE )
+        data = image.index_html(self.REQUEST, self.RESPONSE)
 
-        self.assertEqual( data, '' )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        self.assertEqual(data, '')
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
         headers = self.RESPONSE.headers
         self.failUnless(len(headers) >= original_len + 3)
@@ -197,12 +202,12 @@
             def __str__(self):
                 raise NotImplementedError
 
-        self.root.alt = Clash()
-        self.root.height = Clash()
-        self.root.width = Clash()
+        self.app.alt = Clash()
+        self.app.height = Clash()
+        self.app.width = Clash()
 
         image = self._makeOne( 'test_image', 'test_image.gif' )
-        image = image.__of__( self.root )
+        image = image.__of__(self.app)
 
         tag = image.tag()
         self.failUnless('alt=""' in tag)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -23,64 +23,64 @@
 from Acquisition import aq_base
 from OFS.Folder import Folder
 from Products.StandardCacheManagers import RAMCacheManager
+from zope.component import getSiteManager
 from zope.tales.tales import Undefined
 from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.FSMetadata import FSMetadata
-from Products.CMFCore.FSPageTemplate import FSPageTemplate
+from Products.CMFCore.interfaces import ICachingPolicyManager
 from Products.CMFCore.testing import TraversingZCMLLayer
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
 from Products.CMFCore.tests.base.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
 class FSPTMaker(FSDVTest):
 
-    def _makeOne( self, id, filename ):
+    def _makeOne(self, id, filename):
+        from Products.CMFCore.FSPageTemplate import FSPageTemplate
+
         path = path_join(self.skin_path_name, filename)
         metadata = FSMetadata(path)
         metadata.read()
         return FSPageTemplate( id, path, properties=metadata.getProperties() )
 
 
-class FSPageTemplateTests( RequestTest, FSPTMaker ):
+class FSPageTemplateTests(TransactionalTest, FSPTMaker):
 
     layer = TraversingZCMLLayer
 
     def setUp(self):
+        TransactionalTest.setUp(self)
         FSPTMaker.setUp(self)
-        RequestTest.setUp(self)
 
     def tearDown(self):
-        RequestTest.tearDown(self)
         FSPTMaker.tearDown(self)
+        TransactionalTest.tearDown(self)
 
-    def _setupCachingPolicyManager(self, cpm_object):
-        self.root.caching_policy_manager = cpm_object
-
-    def test_Call( self ):
-        script = self._makeOne( 'testPT', 'testPT.pt' )
+    def test___call__(self):
+        script = self._makeOne('testPT', 'testPT.pt')
         script = script.__of__(self.app)
         self.assertEqual(script(), 'nohost')
 
     def test_ContentType(self):
         script = self._makeOne( 'testXMLPT', 'testXMLPT.pt' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         script()
         self.assertEqual(script.content_type, 'text/xml; charset=utf-8')
         self.assertEqual(self.RESPONSE.getHeader('content-type'), 'text/xml; charset=utf-8')
         # purge RESPONSE Content-Type header for new test
         del self.RESPONSE.headers['content-type']
         script = self._makeOne( 'testPT', 'testPT.pt' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         script()
         self.assertEqual(script.content_type, 'text/html')
         self.assertEqual(self.RESPONSE.getHeader('content-type'), 'text/html')
 
     def test_ContentTypeOverride(self):
         script = self._makeOne( 'testPT_utf8', 'testPT_utf8.pt' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         script()
         self.assertEqual( self.RESPONSE.getHeader('content-type')
                         , 'text/html; charset=utf-8')
@@ -89,7 +89,7 @@
         # Test to see if a content_type specified in a .metadata file
         # is respected
         script = self._makeOne('testPT2', 'testPT2.pt')
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         script()
         self.assertEqual( self.RESPONSE.getHeader('content-type')
                         , 'text/xml'
@@ -99,7 +99,7 @@
         # testPT3 is an UTF-16 encoded file (see its .metadatafile)
         # is respected
         script = self._makeOne('testPT3', 'testPT3.pt')
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         data = script.read()
         self.failUnless(u'123üöäß' in data)
         self.assertEqual(script.content_type, 'text/html')
@@ -108,21 +108,21 @@
         # testPT4 is an UTF-8 encoded file (see its .metadatafile)
         # is respected
         script = self._makeOne('testPT4', 'testPT4.pt')
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         data = script.read()
         self.failUnless(u'123üöäß' in data)
         self.assertEqual(script.content_type, 'text/html')
 
     def test_CharsetFromContentTypeMetadata(self):
         script = self._makeOne('testPT5', 'testPT5.pt')
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         data = script.read()
         self.failUnless(u'123üöäß' in data)
         self.assertEqual(script.content_type, 'text/html; charset=utf-16')
 
     def test_BadCall( self ):
         script = self._makeOne( 'testPTbad', 'testPTbad.pt' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
 
         try: # can't use assertRaises, because different types raised.
             script()
@@ -131,16 +131,17 @@
         else:
             self.fail('Calling a bad template did not raise an exception')
 
-    def test_caching( self ):
+    def test_caching(self):
         #   Test HTTP caching headers.
-        self._setupCachingPolicyManager(DummyCachingManager())
-        original_len = len( self.RESPONSE.headers )
-        script = self._makeOne('testPT', 'testPT.pt')
-        script = script.__of__(self.root)
-        script()
-        self.failUnless( len( self.RESPONSE.headers ) >= original_len + 2 )
-        self.failUnless( 'foo' in self.RESPONSE.headers.keys() )
-        self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        original_len = len(self.RESPONSE.headers)
+        obj = self._makeOne('testPT', 'testPT.pt')
+        obj = obj.__of__(self.app)
+        obj()
+        self.failUnless(len(self.RESPONSE.headers) >= original_len + 2)
+        self.failUnless('foo' in self.RESPONSE.headers.keys())
+        self.failUnless('bar' in self.RESPONSE.headers.keys())
 
     def test_pt_properties( self ):
         script = self._makeOne( 'testPT', 'testPT.pt' )
@@ -152,7 +153,7 @@
         for fformat in ('unix', 'dos', 'mac'):
             script = self._makeOne(fformat,
                                    'testPT_multiline_python_%s.pt' % fformat)
-            script = script.__of__(self.root)
+            script = script.__of__(self.app)
             self.assertEqual(script(), 'foo bar spam eggs\n')
 
 
@@ -176,12 +177,12 @@
         self.failUnless( 'testPT' in self.custom.objectIds() )
 
     def test_customize_alternate_root( self ):
-        self.root.other = Folder('other')
+        self.app.other = Folder('other')
 
-        self.fsPT.manage_doCustomize( folder_path='other', root=self.root )
+        self.fsPT.manage_doCustomize(folder_path='other', root=self.app)
 
         self.failIf( 'testPT' in self.custom.objectIds() )  
-        self.failUnless( 'testPT' in self.root.other.objectIds() )  
+        self.failUnless( 'testPT' in self.app.other.objectIds() )  
 
     def test_customize_fspath_as_dot( self ):
         self.fsPT.manage_doCustomize( folder_path='.' )
@@ -200,7 +201,7 @@
     def test_customize_caching(self):
         # Test to ensure that cache manager associations survive customizing
         cache_id = 'gofast'
-        RAMCacheManager.manage_addRAMCacheManager( self.root
+        RAMCacheManager.manage_addRAMCacheManager( self.app
                                                  , cache_id
                                                  , REQUEST=None
                                                  )

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -21,25 +21,32 @@
 
 from Acquisition import aq_base
 from App.Common import rfc1123_date
+from DateTime import DateTime
+from zope.component import getSiteManager
 from zope.testing.cleanup import cleanUp
 
+from Products.CMFCore.interfaces import ICachingPolicyManager
 from Products.CMFCore.testing import TraversingZCMLLayer
+from Products.CMFCore.tests.base.dummy import DummyCachingManager
+from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
 from Products.CMFCore.tests.base.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
 class FSReSTMaker(FSDVTest):
 
     def setUp(self):
         from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
+
         FSDVTest.setUp(self)
         main = ZopePageTemplate('main_template', _TEST_MAIN_TEMPLATE)
-        self.root._setOb('main_template', main)
+        self.app._setOb('main_template', main)
 
     def _makeOne( self, id, filename ):
         from Products.CMFCore.FSMetadata import FSMetadata
         from Products.CMFCore.FSReSTMethod import FSReSTMethod
+
         path = os.path.join(self.skin_path_name, filename)
         metadata = FSMetadata(path)
         metadata.read()
@@ -78,64 +85,61 @@
     return ' '.join(WS.split(text.rstrip()))
 
 
-class FSReSTMethodTests(RequestTest, FSReSTMaker):
+class FSReSTMethodTests(TransactionalTest, FSReSTMaker):
 
     layer = TraversingZCMLLayer
 
     def setUp(self):
-        RequestTest.setUp(self)
+        TransactionalTest.setUp(self)
         FSReSTMaker.setUp(self)
 
     def tearDown(self):
         FSReSTMaker.tearDown(self)
-        RequestTest.tearDown(self)
+        TransactionalTest.tearDown(self)
 
-    def test___call__( self ):
-        script = self._makeOne( 'testReST', 'testReST.rst' )
+    def test___call__(self):
+        script = self._makeOne('testReST', 'testReST.rst')
         script = script.__of__(self.app)
         self.assertEqual(_normalize_whitespace(script(self.REQUEST)),
                          _normalize_whitespace(_EXPECTED_HTML))
 
-    def test_caching( self ):
+    def test_caching(self):
         #   Test HTTP caching headers.
-        from Products.CMFCore.tests.base.dummy import DummyCachingManager
-        self.root.caching_policy_manager = DummyCachingManager()
-        original_len = len( self.RESPONSE.headers )
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        original_len = len(self.RESPONSE.headers)
+        obj = self._makeOne('testReST', 'testReST.rst')
+        obj = obj.__of__(self.app)
+        obj(self.REQUEST, self.RESPONSE)
+        self.failUnless(len(self.RESPONSE.headers) >= original_len + 2)
+        self.failUnless('foo' in self.RESPONSE.headers.keys())
+        self.failUnless('bar' in self.RESPONSE.headers.keys())
+
+    def test_ownership(self):
         script = self._makeOne('testReST', 'testReST.rst')
-        script = script.__of__(self.root)
-        script(self.REQUEST, self.RESPONSE)
-        self.failUnless( len( self.RESPONSE.headers ) >= original_len + 2 )
-        self.failUnless( 'foo' in self.RESPONSE.headers.keys() )
-        self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
-
-    def test_ownership( self ):
-        script = self._makeOne( 'testReST', 'testReST.rst' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         # FSReSTMethod has no owner
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
         # and ownership is not acquired [CMF/450]
-        self.root._owner= ('/foobar', 'baz')
+        self.app._owner = ('/foobar', 'baz')
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
-    def test_304_response_from_cpm( self ):
+    def test_304_response_from_cpm(self):
         # test that we get a 304 response from the cpm via this template
-        from DateTime import DateTime
-        from Products.CMFCore.tests.base.dummy \
-            import DummyCachingManagerWithPolicy
-
         mod_time = DateTime()
-        self.root.caching_policy_manager = DummyCachingManagerWithPolicy()
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         script = self._makeOne('testReST', 'testReST.rst')
-        script = script.__of__(self.root)
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time+3600 )
+        script = script.__of__(self.app)
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time + 3600)
         data = script(self.REQUEST, self.RESPONSE)
 
-        self.assertEqual( data, '' )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        self.assertEqual(data, '')
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
 
 ADD_ZPT = 'Add page templates'
@@ -184,12 +188,12 @@
     def test_customize_alternate_root( self ):
         from OFS.Folder import Folder
 
-        self.root.other = Folder('other')
+        self.app.other = Folder('other')
 
-        self.fsReST.manage_doCustomize(folder_path='other', root=self.root)
+        self.fsReST.manage_doCustomize(folder_path='other', root=self.app)
 
         self.failIf('testReST' in self.custom.objectIds())
-        self.failUnless('testReST' in self.root.other.objectIds())
+        self.failUnless('testReST' in self.app.other.objectIds())
 
     def test_customize_fpath_as_dot( self ):
 
@@ -213,7 +217,7 @@
         from Products.StandardCacheManagers import RAMCacheManager
         cache_id = 'gofast'
         self.custom.all_meta_types = ZPT_META_TYPES
-        RAMCacheManager.manage_addRAMCacheManager( self.root
+        RAMCacheManager.manage_addRAMCacheManager( self.app
                                                  , cache_id
                                                  , REQUEST=None
                                                  )

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -21,12 +21,17 @@
 
 from Acquisition import aq_base
 from App.Common import rfc1123_date
+from DateTime import DateTime
+from zope.component import getSiteManager
 from zope.testing.cleanup import cleanUp
 
+from Products.CMFCore.interfaces import ICachingPolicyManager
 from Products.CMFCore.testing import TraversingZCMLLayer
+from Products.CMFCore.tests.base.dummy import DummyCachingManager
+from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
 from Products.CMFCore.tests.base.testcase import FSDVTest
-from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
+from Products.CMFCore.tests.base.testcase import TransactionalTest
 
 
 class FSSTXMaker(FSDVTest):
@@ -34,6 +39,7 @@
     def _makeOne( self, id, filename ):
         from Products.CMFCore.FSMetadata import FSMetadata
         from Products.CMFCore.FSSTXMethod import FSSTXMethod
+
         path = os.path.join(self.skin_path_name, filename)
         metadata = FSMetadata(path)
         metadata.read()
@@ -76,7 +82,7 @@
         self._old_STX_TEMPLATE = Products.CMFCore.FSSTXMethod._STX_TEMPLATE
 
     def tearDown(self):
-        RequestTest.tearDown(self)
+        TransactionalTest.tearDown(self)
         FSSTXMaker.tearDown(self)
         self._setWhichTemplate(self._old_STX_TEMPLATE)
 
@@ -86,86 +92,81 @@
         Products.CMFCore.FSSTXMethod._STX_TEMPLATE = which
 
         if which == 'DTML':
-            self.root.standard_html_header = (
+            self.app.standard_html_header = (
                     lambda *args, **kw: '<html>\n<body>\n')
-            self.root.standard_html_footer = (
+            self.app.standard_html_footer = (
                     lambda *args, **kw: '</body>\n</html>\n')
         elif which == 'ZPT':
             main = ZopePageTemplate('main_template', _TEST_MAIN_TEMPLATE)
-            self.root._setOb('main_template', main)
+            self.app._setOb('main_template', main)
 
-class FSSTXMethodTests(RequestTest,
-                       FSSTXMaker,
-                       _TemplateSwitcher,
-                      ):
 
+class FSSTXMethodTests(TransactionalTest, FSSTXMaker, _TemplateSwitcher):
+
     layer = TraversingZCMLLayer
 
     def setUp(self):
         _TemplateSwitcher.setUp(self)
-        RequestTest.setUp(self)
+        TransactionalTest.setUp(self)
         FSSTXMaker.setUp(self)
 
     def tearDown(self):
         FSSTXMaker.tearDown(self)
-        RequestTest.tearDown(self)
+        TransactionalTest.tearDown(self)
         _TemplateSwitcher.tearDown(self)
 
-    def test___call___with_DTML( self ):
+    def test___call___with_DTML(self):
         self._setWhichTemplate('DTML')
-        script = self._makeOne( 'testSTX', 'testSTX.stx' )
+        script = self._makeOne('testSTX', 'testSTX.stx')
         script = script.__of__(self.app)
         self.assertEqual(_normalize_whitespace(script(self.REQUEST)),
                          _normalize_whitespace(_EXPECTED_HTML))
 
-    def test___call___with_ZPT( self ):
+    def test___call___with_ZPT(self):
         self._setWhichTemplate('ZPT')
-        script = self._makeOne( 'testSTX', 'testSTX.stx' )
+        script = self._makeOne('testSTX', 'testSTX.stx')
         script = script.__of__(self.app)
         self.assertEqual(_normalize_whitespace(script(self.REQUEST)),
                          _normalize_whitespace(_EXPECTED_HTML))
 
-    def test_caching( self ):
+    def test_caching(self):
         #   Test HTTP caching headers.
-        from Products.CMFCore.tests.base.dummy import DummyCachingManager
         self._setWhichTemplate('DTML')
-        self.root.caching_policy_manager = DummyCachingManager()
-        original_len = len( self.RESPONSE.headers )
+        cpm = DummyCachingManager()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
+        original_len = len(self.RESPONSE.headers)
+        obj = self._makeOne('testSTX', 'testSTX.stx')
+        obj = obj.__of__(self.app)
+        obj(self.REQUEST, self.RESPONSE)
+        self.failUnless(len(self.RESPONSE.headers) >= original_len + 2)
+        self.failUnless('foo' in self.RESPONSE.headers.keys())
+        self.failUnless('bar' in self.RESPONSE.headers.keys())
+
+    def test_ownership(self):
         script = self._makeOne('testSTX', 'testSTX.stx')
-        script = script.__of__(self.root)
-        script(self.REQUEST, self.RESPONSE)
-        self.failUnless( len( self.RESPONSE.headers ) >= original_len + 2 )
-        self.failUnless( 'foo' in self.RESPONSE.headers.keys() )
-        self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
-
-    def test_ownership( self ):
-        script = self._makeOne( 'testSTX', 'testSTX.stx' )
-        script = script.__of__(self.root)
+        script = script.__of__(self.app)
         # FSSTXMethod has no owner
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
         # and ownership is not acquired [CMF/450]
-        self.root._owner= ('/foobar', 'baz')
+        self.app._owner = ('/foobar', 'baz')
         owner_tuple = script.getOwnerTuple()
         self.assertEqual(owner_tuple, None)
 
-    def test_304_response_from_cpm( self ):
+    def test_304_response_from_cpm(self):
         # test that we get a 304 response from the cpm via this template
-        from DateTime import DateTime
-        from Products.CMFCore.tests.base.dummy \
-            import DummyCachingManagerWithPolicy
-
         mod_time = DateTime()
-        self.root.caching_policy_manager = DummyCachingManagerWithPolicy()
+        cpm = DummyCachingManagerWithPolicy()
+        getSiteManager().registerUtility(cpm, ICachingPolicyManager)
         script = self._makeOne('testSTX', 'testSTX.stx')
-        script = script.__of__(self.root)
-        self.REQUEST.environ[ 'IF_MODIFIED_SINCE'
-                            ] = '%s;' % rfc1123_date( mod_time+3600 )
+        script = script.__of__(self.app)
+        self.REQUEST.environ['IF_MODIFIED_SINCE'
+                            ] = '%s;' % rfc1123_date(mod_time + 3600)
         data = script(self.REQUEST, self.RESPONSE)
 
-        self.assertEqual( data, '' )
-        self.assertEqual( self.RESPONSE.getStatus(), 304 )
+        self.assertEqual(data, '')
+        self.assertEqual(self.RESPONSE.getStatus(), 304)
 
 
 ADD_ZPT = 'Add page templates'
@@ -199,12 +200,12 @@
         from OFS.Folder import Folder
 
         self._setWhichTemplate('DTML')
-        self.root.other = Folder('other')
+        self.app.other = Folder('other')
 
-        self.fsSTX.manage_doCustomize(folder_path='other', root=self.root)
+        self.fsSTX.manage_doCustomize(folder_path='other', root=self.app)
 
         self.failIf('testSTX' in self.custom.objectIds())
-        self.failUnless('testSTX' in self.root.other.objectIds())
+        self.failUnless('testSTX' in self.app.other.objectIds())
 
     def test_customize_fspath_as_dot( self ):
         self._setWhichTemplate('DTML')
@@ -274,7 +275,7 @@
         cache_id = 'gofast'
         self._setWhichTemplate('ZPT')
         self.custom.all_meta_types = ZPT_META_TYPES
-        RAMCacheManager.manage_addRAMCacheManager( self.root
+        RAMCacheManager.manage_addRAMCacheManager( self.app
                                                  , cache_id
                                                  , REQUEST=None
                                                  )

Modified: Products.CMFCore/trunk/Products/CMFCore/utils.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/utils.py	2011-09-26 08:50:57 UTC (rev 122939)
+++ Products.CMFCore/trunk/Products/CMFCore/utils.py	2011-09-26 08:51:14 UTC (rev 122940)
@@ -46,12 +46,14 @@
 from OFS.SimpleItem import SimpleItem
 from thread import allocate_lock
 from zope.component import getUtility
+from zope.component import queryUtility
 from zope.component.interfaces import ComponentLookupError
 from zope.dottedname.resolve import resolve as resolve_dotted_name
 from zope.i18nmessageid import MessageFactory
 
 from Products.CMFCore.exceptions import AccessControl_Unauthorized
 from Products.CMFCore.exceptions import NotFound
+from Products.CMFCore.interfaces import ICachingPolicyManager
 
 SUBTEMPLATE = '__SUBTEMPLATE__'
 
@@ -378,7 +380,7 @@
         # not a conditional GET
         return False
 
-    manager = getToolByName(obj, 'caching_policy_manager', None)
+    manager = queryUtility(ICachingPolicyManager)
     if manager is None:
         return False
 
@@ -458,7 +460,7 @@
         delattr(REQUEST, SUBTEMPLATE)
 
         content = aq_parent(obj)
-        manager = getToolByName(obj, 'caching_policy_manager', None)
+        manager = queryUtility(ICachingPolicyManager)
         if manager is None:
             return
 



More information about the checkins mailing list