[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