[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - converted three more tools
Yvo Schubbe
y.2011 at wcm-solutions.de
Fri Sep 16 07:18:39 EST 2011
Log message for revision 122820:
- converted three more tools
Changed:
U Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
U Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
U Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
U Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
U Products.CMFCore/trunk/Products/CMFCore/FSObject.py
U Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
UU Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
UU Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
UU Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
UU Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
U Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py
U Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py
U Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py
UU Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
U Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py
-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt 2011-09-16 12:18:39 UTC (rev 122820)
@@ -5,8 +5,9 @@
------------------------
- tools: Converted several tools into utilities.
- ActionsTool, CookieCrumbler, MemberDataTool, MembershipTool, RegistrationTool
- and URLTool are now local utilities.
+ ActionsTool, CatalogTool, CookieCrumbler, MemberDataTool, MembershipTool,
+ RegistrationTool, SkinsTool, URLTool and WorkflowTool are now local
+ utilities.
- MemberDataTool: Changed property modes to 'w' and added 'fullname' property.
Modified: Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CMFCatalogAware.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -23,6 +23,7 @@
from ExtensionClass import Base
from OFS.interfaces import IObjectClonedEvent
from OFS.interfaces import IObjectWillBeMovedEvent
+from zope.component import queryUtility
from zope.component import subscribers
from zope.container.interfaces import IObjectAddedEvent
from zope.container.interfaces import IObjectMovedEvent
@@ -32,13 +33,14 @@
from Products.CMFCore.interfaces import ICallableOpaqueItem
from Products.CMFCore.interfaces import ICatalogAware
+from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.interfaces import IOpaqueItemManager
from Products.CMFCore.interfaces import IWorkflowAware
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.permissions import AccessContentsInformation
from Products.CMFCore.permissions import ManagePortal
from Products.CMFCore.permissions import ModifyPortalContent
from Products.CMFCore.utils import _dtmldir
-from Products.CMFCore.utils import getToolByName
logger = logging.getLogger('CMFCore.CMFCatalogAware')
@@ -55,7 +57,7 @@
# The following method can be overridden using inheritance so that it's
# possible to specify another catalog tool for a given content type
def _getCatalogTool(self):
- return getToolByName(self, 'portal_catalog', None)
+ return queryUtility(ICatalogTool)
#
# 'ICatalogAware' interface methods
@@ -145,14 +147,14 @@
""" Tab displaying the current workflows for the content object.
"""
ob = self
- wftool = self._getWorkflowTool()
+ wtool = self._getWorkflowTool()
# XXX None ?
- if wftool is not None:
- wf_ids = wftool.getChainFor(ob)
+ if wtool is not None:
+ wf_ids = wtool.getChainFor(ob)
states = {}
chain = []
for wf_id in wf_ids:
- wf = wftool.getWorkflowById(wf_id)
+ wf = wtool.getWorkflowById(wf_id)
if wf is not None:
# XXX a standard API would be nice
if hasattr(wf, 'getReviewStateOf'):
@@ -175,7 +177,7 @@
# The following method can be overridden using inheritance so that it's
# possible to specify another workflow tool for a given content type
def _getWorkflowTool(self):
- return getToolByName(self, 'portal_workflow', None)
+ return queryUtility(IWorkflowTool)
#
# 'IWorkflowAware' interface methods
@@ -184,9 +186,9 @@
def notifyWorkflowCreated(self):
""" Notify the workflow that the object was just created.
"""
- wftool = self._getWorkflowTool()
- if wftool is not None:
- wftool.notifyCreated(self)
+ wtool = self._getWorkflowTool()
+ if wtool is not None:
+ wtool.notifyCreated(self)
InitializeClass(WorkflowAware)
Modified: Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/CatalogTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,9 +22,10 @@
from DateTime.DateTime import DateTime
from Products.PluginIndexes.common import safe_callable
from Products.ZCatalog.ZCatalog import ZCatalog
-from zope.interface import implements
from zope.component import adapts
from zope.component import queryMultiAdapter
+from zope.component import queryUtility
+from zope.interface import implements
from zope.interface import providedBy
from zope.interface.declarations import getObjectSpecification
from zope.interface.declarations import ObjectSpecification
@@ -32,18 +33,20 @@
from Products.CMFCore.ActionProviderBase import ActionProviderBase
from Products.CMFCore.interfaces import ICatalogTool
+from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IIndexableObject
from Products.CMFCore.interfaces import IIndexableObjectWrapper
-from Products.CMFCore.interfaces import IIndexableObject
-from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.permissions import AccessInactivePortalContent
from Products.CMFCore.permissions import ManagePortal
from Products.CMFCore.permissions import View
from Products.CMFCore.utils import _checkPermission
from Products.CMFCore.utils import _dtmldir
from Products.CMFCore.utils import _mergedLocalRoles
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import registerToolInterface
from Products.CMFCore.utils import UniqueObject
+
class IndexableObjectSpecification(ObjectSpecificationDescriptor):
# This class makes the wrapper transparent, adapter lookup is
@@ -66,9 +69,9 @@
def __init__(self, ob, catalog):
# look up the workflow variables for the object
- wftool = getToolByName(catalog, 'portal_workflow', None)
- if wftool is not None:
- self.__vars = wftool.getCatalogVariablesFor(ob)
+ wtool = queryUtility(IWorkflowTool)
+ if wtool is not None:
+ self.__vars = wtool.getCatalogVariablesFor(ob)
else:
self.__vars = {}
self.__ob = ob
@@ -301,3 +304,4 @@
self.catalog_object(object, uid, idxs, update_metadata)
InitializeClass(CatalogTool)
+registerToolInterface('portal_catalog', ICatalogTool)
Modified: Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/DiscussionTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,9 +22,11 @@
from DateTime.DateTime import DateTime
from OFS.SimpleItem import SimpleItem
from zope.component import getUtility
+from zope.component import queryUtility
from zope.interface import implements
from Products.CMFCore.ActionProviderBase import ActionProviderBase
+from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.interfaces import IMembershipTool
from Products.CMFCore.interfaces import IOldstyleDiscussable
from Products.CMFCore.interfaces import IOldstyleDiscussionTool
@@ -33,7 +35,6 @@
from Products.CMFCore.permissions import ReplyToItem
from Products.CMFCore.permissions import View
from Products.CMFCore.utils import _dtmldir
-from Products.CMFCore.utils import getToolByName
from Products.CMFCore.utils import UniqueObject
@@ -89,8 +90,9 @@
Often, the actual objects are not needed. This is less expensive
than fetching the objects.
"""
- catalog = getToolByName(self.content, 'portal_catalog')
- return catalog.searchResults(in_reply_to=
+ ctool = queryUtility(ICatalogTool)
+ if ctool is not None:
+ return ctool.searchResults(in_reply_to=
urllib.unquote('/'+self.absolute_url(1)))
security.declareProtected(View, 'getReplies')
@@ -99,11 +101,12 @@
Return a sequence of the DiscussionResponse objects which are
associated with this Discussable
"""
- catalog = getToolByName(self.content, 'portal_catalog')
- results = self.getReplyResults()
- rids = map(lambda x: x.data_record_id_, results)
- objects = map(catalog.getobject, rids)
- return objects
+ ctool = queryUtility(ICatalogTool)
+ if ctool is not None:
+ results = self.getReplyResults()
+ rids = map(lambda x: x.data_record_id_, results)
+ objects = map(ctool.getobject, rids)
+ return objects
def quotedContents(self):
"""
Modified: Products.CMFCore/trunk/Products/CMFCore/FSObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/FSObject.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/FSObject.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -29,11 +29,12 @@
from OFS.role import RoleManager
from OFS.SimpleItem import Item
from Products.PythonScripts.standard import html_quote
+from zope.component import getUtility
+from Products.CMFCore.interfaces import ISkinsTool
from Products.CMFCore.permissions import ManagePortal
from Products.CMFCore.permissions import View
from Products.CMFCore.permissions import ViewManagementScreens
-from Products.CMFCore.utils import getToolByName
class FSObject(Implicit, Item, RoleManager, Cacheable):
@@ -115,16 +116,10 @@
# The permission was invalid, never mind
pass
- skins_tool_namegetter = getattr(self, 'getSkinsFolderName', None)
- if skins_tool_namegetter is not None:
- skins_tool_name = skins_tool_namegetter()
- else:
- skins_tool_name = 'portal_skins'
-
id = obj.getId()
fpath = tuple(folder_path.split('/'))
if root is None:
- portal_skins = getToolByName(self, skins_tool_name)
+ portal_skins = getUtility(ISkinsTool)
else:
portal_skins = root
if folder_path == '.':
Modified: Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/SkinsTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -28,6 +28,7 @@
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Products.PythonScripts.PythonScript import PythonScript
from zope.component import getUtility
+from zope.globalrequest import getRequest
from zope.interface import implements
from Products.CMFCore.ActionProviderBase import ActionProviderBase
@@ -42,6 +43,7 @@
from Products.CMFCore.permissions import View
from Products.CMFCore.SkinsContainer import SkinsContainer
from Products.CMFCore.utils import _dtmldir
+from Products.CMFCore.utils import registerToolInterface
from Products.CMFCore.utils import UniqueObject
def modifiedOptions():
@@ -304,14 +306,12 @@
def updateSkinCookie(self):
""" If needed, updates the skin cookie based on the member preference.
"""
- # XXX: this method violates the rules for tools/utilities:
- # it uses self.REQUEST
mtool = getUtility(IMembershipTool)
member = mtool.getAuthenticatedMember()
if hasattr(aq_base(member), 'getProperty'):
mskin = member.getProperty('portal_skin')
if mskin:
- req = self.REQUEST
+ req = getRequest()
cookie = req.cookies.get(self.request_varname, None)
if cookie != mskin:
resp = req.RESPONSE
@@ -340,9 +340,7 @@
def clearSkinCookie(self):
""" Expire the skin cookie.
"""
- # XXX: this method violates the rules for tools/utilities:
- # it uses self.REQUEST
- req = self.REQUEST
+ req = getRequest()
resp = req.RESPONSE
utool = getUtility(IURLTool)
portal_path = req['BASEPATH1'] + '/' + utool(1)
@@ -395,3 +393,4 @@
return res
InitializeClass(SkinsTool)
+registerToolInterface('portal_skins', ISkinsTool)
Modified: Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/TypesTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/TypesTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,8 +11,6 @@
#
##############################################################################
""" Type registration tool.
-
-$Id$
"""
import logging
@@ -45,6 +43,7 @@
from Products.CMFCore.interfaces import IAction
from Products.CMFCore.interfaces import ITypeInformation
from Products.CMFCore.interfaces import ITypesTool
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.permissions import AccessContentsInformation
from Products.CMFCore.permissions import AddPortalContent
from Products.CMFCore.permissions import ManagePortal
@@ -52,7 +51,6 @@
from Products.CMFCore.utils import _checkPermission
from Products.CMFCore.utils import _dtmldir
from Products.CMFCore.utils import _wwwdir
-from Products.CMFCore.utils import getToolByName
from Products.CMFCore.utils import SimpleItemWithProperties
from Products.CMFCore.utils import UniqueObject
@@ -354,10 +352,10 @@
def _checkWorkflowAllowed(self, container):
""" Check if a workflow veto object creation
"""
- wtool = getToolByName(self, 'portal_workflow', None)
+ wtool = queryUtility(IWorkflowTool)
if wtool is None:
return True
-
+
type_id = self.getId()
workflows = wtool.getWorkflowsFor(type_id)
for workflow in workflows:
@@ -369,9 +367,9 @@
if not guard(container, type_id):
return False
-
- return True
+ return True
+
#
# 'IAction' interface methods
#
Property changes on: Products.CMFCore/trunk/Products/CMFCore/TypesTool.py
___________________________________________________________________
Deleted: svn:keywords
- Author Date Id Revision
Modified: Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,27 +11,27 @@
#
##############################################################################
""" Basic workflow tool.
-
-$Id$
"""
import sys
-from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.requestmethod import postonly
+from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import aq_base, aq_inner, aq_parent
from App.class_init import InitializeClass
from App.special_dtml import DTMLFile
from OFS.Folder import Folder
from OFS.ObjectManager import IFAwareObjectManager
from Persistence import PersistentMapping
-from zope.event import notify
-from zope.interface import implements
-from zope.interface import implementer
-from zope.component import adapts
from zope.component import adapter
+from zope.component import adapts
from zope.component import getMultiAdapter
from zope.component import queryMultiAdapter
+from zope.event import notify
+from zope.globalrequest import getRequest
+from zope.interface import implementer
+from zope.interface import implements
+from ZPublisher.BaseRequest import RequestContainer
from Products.CMFCore.ActionProviderBase import ActionProviderBase
from Products.CMFCore.interfaces import IConfigurableWorkflowTool
@@ -44,6 +44,7 @@
from Products.CMFCore.utils import _dtmldir
from Products.CMFCore.utils import getToolByName
from Products.CMFCore.utils import Message as _
+from Products.CMFCore.utils import registerToolInterface
from Products.CMFCore.utils import UniqueObject
from Products.CMFCore.WorkflowCore import ActionRaisedExceptionEvent
from Products.CMFCore.WorkflowCore import ActionSucceededEvent
@@ -469,13 +470,11 @@
def getDefaultChainFor(self, ob):
""" Get the default chain, if applicable, for ob.
"""
- # XXX: this method violates the rules for tools/utilities:
- # it depends on a non-utility tool
- types_tool = getToolByName( self, 'portal_types', None )
- if ( types_tool is not None
- and types_tool.getTypeInfo( ob ) is not None ):
+ request_container = RequestContainer(REQUEST=getRequest())
+ rich_context = self.__of__(request_container)
+ ttool = getToolByName(rich_context, 'portal_types', None)
+ if ttool is not None and ttool.getTypeInfo(ob) is not None:
return self._default_chain
-
return ()
security.declarePrivate('getWorkflowIds')
@@ -503,18 +502,16 @@
#
# Helper methods
#
- security.declarePrivate( '_listTypeInfo' )
+ security.declarePrivate('_listTypeInfo')
def _listTypeInfo(self):
-
""" List the portal types which are available.
"""
- # XXX: this method violates the rules for tools/utilities:
- # it depends on a non-utility tool
- pt = getToolByName(self, 'portal_types', None)
- if pt is None:
- return ()
- else:
- return pt.listTypeInfo()
+ request_container = RequestContainer(REQUEST=getRequest())
+ rich_context = self.__of__(request_container)
+ ttool = getToolByName(rich_context, 'portal_types', None)
+ if ttool is not None:
+ return ttool.listTypeInfo()
+ return ()
security.declarePrivate( '_invokeWithNotification' )
def _invokeWithNotification(self, wfs, ob, action, func, args, kw):
@@ -617,6 +614,7 @@
ob.reindexObjectSecurity()
InitializeClass(WorkflowTool)
+registerToolInterface('portal_workflow', IWorkflowTool)
class DefaultWorkflowStatus(object):
Property changes on: Products.CMFCore/trunk/Products/CMFCore/WorkflowTool.py
___________________________________________________________________
Deleted: svn:keywords
- Author Date Id Revision
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,21 +11,21 @@
#
##############################################################################
"""Catalog tool setup handlers.
-
-$Id$
"""
+from zope.component import getSiteManager
+
from Products.GenericSetup.utils import exportObjects
from Products.GenericSetup.utils import importObjects
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.interfaces import ICatalogTool
def importCatalogTool(context):
"""Import catalog tool.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_catalog', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(ICatalogTool)
if tool is None:
logger = context.getLogger('catalog')
logger.debug('Nothing to import.')
@@ -36,8 +36,8 @@
def exportCatalogTool(context):
"""Export catalog tool.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_catalog', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(ICatalogTool)
if tool is None:
logger = context.getLogger('catalog')
logger.debug('Nothing to export.')
Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/catalog.py
___________________________________________________________________
Deleted: svn:keywords
- Id
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,13 +11,12 @@
#
##############################################################################
"""Skins tool xml adapters and setup handlers.
-
-$Id$
"""
from Acquisition import aq_inner
from Acquisition import aq_parent
from zope.component import adapts
+from zope.component import getSiteManager
from Products.GenericSetup.interfaces import ISetupEnviron
from Products.GenericSetup.utils import exportObjects
@@ -28,7 +27,6 @@
from Products.CMFCore.interfaces import IDirectoryView
from Products.CMFCore.interfaces import ISkinsTool
-from Products.CMFCore.utils import getToolByName
class DirectoryViewNodeAdapter(NodeAdapterBase):
@@ -152,7 +150,7 @@
if oldpath.index(layer) == 0:
layernode.setAttribute('insert-before', '*')
else:
- pos = oldpath[oldpath.index(layer)-1]
+ pos = oldpath[oldpath.index(layer) - 1]
layernode.setAttribute('insert-after', pos)
child.insertBefore(layernode, newlayerstart)
path = self._updatePath(path, child)
@@ -196,7 +194,7 @@
else:
try:
index = path.index(insert_after)
- path.insert(index+1, layer_name)
+ path.insert(index + 1, layer_name)
continue
except ValueError:
pass
@@ -204,7 +202,7 @@
if not child.hasAttribute('remove'):
path.append(layer_name)
- return str( ','.join(path) )
+ return str(','.join(path))
def _removeSkin(self, skin_name=None):
@@ -213,14 +211,14 @@
"""
skins = self.context.getSkinSelections()
if skin_name in skins:
- self.context.manage_skinLayers(chosen=[skin_name], del_skin=1, )
+ self.context.manage_skinLayers(chosen=[skin_name], del_skin=1,)
def importSkinsTool(context):
"""Import skins tool FSDirViews and skin paths from an XML file.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_skins', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(ISkinsTool)
if tool is None:
logger = context.getLogger('skins')
logger.debug('Nothing to import.')
@@ -231,8 +229,8 @@
def exportSkinsTool(context):
"""Export skins tool FSDVs and skin paths as an XML file.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_skins', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(ISkinsTool)
if tool is None:
logger = context.getLogger('skins')
logger.debug('Nothing to export.')
Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/skins.py
___________________________________________________________________
Deleted: svn:keywords
- Id
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_catalog.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -22,12 +22,14 @@
from Products.ZCTextIndex.Lexicon import Splitter
from Products.ZCTextIndex.Lexicon import StopWordRemover
from Products.ZCTextIndex.ZCTextIndex import PLexicon
+from zope.component import getSiteManager
from Products.GenericSetup.tests.common import BaseRegistryTests
from Products.GenericSetup.tests.common import DummyExportContext
from Products.GenericSetup.tests.common import DummyImportContext
from Products.CMFCore.CatalogTool import CatalogTool
+from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.testing import ExportImportZCMLLayer
_EMPTY_EXPORT = """\
@@ -74,8 +76,9 @@
class _CatalogToolSetup(BaseRegistryTests):
def _initSite(self, foo=2):
- site = self.root.site = Folder(id='site')
- ctool = site.portal_catalog = CatalogTool()
+ site = Folder(id='site').__of__(self.app)
+ ctool = CatalogTool()
+ getSiteManager().registerUtility(ctool, ICatalogTool)
for obj_id in ctool.objectIds():
ctool._delObject(obj_id)
@@ -96,7 +99,7 @@
ctool.addColumn('foo_zctext')
- return site
+ return site, ctool
class exportCatalogToolTests(_CatalogToolSetup):
@@ -106,7 +109,7 @@
def test_unchanged(self):
from Products.CMFCore.exportimport.catalog import exportCatalogTool
- site = self._initSite(0)
+ site, _ctool = self._initSite(0)
context = DummyExportContext(site)
exportCatalogTool(context)
@@ -119,7 +122,7 @@
def test_normal(self):
from Products.CMFCore.exportimport.catalog import exportCatalogTool
- site = self._initSite(2)
+ site, _ctool = self._initSite(2)
context = DummyExportContext(site)
exportCatalogTool(context)
@@ -137,8 +140,7 @@
def test_empty_purge(self):
from Products.CMFCore.exportimport.catalog import importCatalogTool
- site = self._initSite(2)
- ctool = site.portal_catalog
+ site, ctool = self._initSite(2)
self.assertEqual(len(ctool.objectIds()), 1)
self.assertEqual(len(ctool.indexes()), 1)
@@ -155,8 +157,7 @@
def test_empty_update(self):
from Products.CMFCore.exportimport.catalog import importCatalogTool
- site = self._initSite(2)
- ctool = site.portal_catalog
+ site, ctool = self._initSite(2)
self.assertEqual(len(ctool.objectIds()), 1)
self.assertEqual(len(ctool.indexes()), 1)
@@ -174,8 +175,7 @@
from Products.CMFCore.exportimport.catalog import exportCatalogTool
from Products.CMFCore.exportimport.catalog import importCatalogTool
- site = self._initSite(2)
- ctool = site.portal_catalog
+ site, ctool = self._initSite(2)
self.assertEqual(len(ctool.objectIds()), 1)
self.assertEqual(len(ctool.indexes()), 1)
@@ -202,8 +202,7 @@
def test_normal_update(self):
from Products.CMFCore.exportimport.catalog import importCatalogTool
- site = self._initSite(2)
- ctool = site.portal_catalog
+ site, ctool = self._initSite(2)
self.assertEqual(len(ctool.objectIds()), 1)
self.assertEqual(len(ctool.indexes()), 1)
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_skins.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,6 +20,7 @@
import os
from OFS.Folder import Folder
+from zope.component import getSiteManager
from zope.interface import implements
from Products.GenericSetup.testing import BodyAdapterTestCase
@@ -303,10 +304,11 @@
fsdvs = [ (id, DirectoryView(id,
'Products.CMFCore.exportimport.tests:%s' % id))
for id in ids ]
- site._setObject('portal_skins', DummySkinsTool(selections, fsdvs))
+ stool = DummySkinsTool(selections, fsdvs).__of__(site)
+ getSiteManager().registerUtility(stool, ISkinsTool)
site.REQUEST = 'exists'
- return site
+ return site, stool
def setUp(self):
BaseRegistryTests.setUp(self)
@@ -324,7 +326,7 @@
def test_empty(self):
from Products.CMFCore.exportimport.skins import exportSkinsTool
- site = self._initSite()
+ site, _stool = self._initSite()
context = DummyExportContext(site)
exportSkinsTool(context)
@@ -340,8 +342,8 @@
_IDS = ('one', 'two', 'three')
_PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- tool = site.portal_skins
+ site, tool = self._initSite(selections=_PATHS, ids=_IDS)
+
tool.default_skin = 'basic'
tool.request_varname = 'skin_var'
tool.allow_any = True
@@ -378,8 +380,8 @@
_IDS = ('one', 'two', 'three')
_PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
+
self.failUnless(skins_tool._getSelections().has_key('fancy'))
context = DummyImportContext(site)
@@ -395,8 +397,7 @@
_IDS = ('one', 'two', 'three')
_PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
self.failIf(site._skin_setup_called)
self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -420,8 +421,7 @@
_IDS = ('one', 'two', 'three')
_PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
self.failIf(site._skin_setup_called)
self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -445,8 +445,7 @@
_IDS = ('one', 'two', 'three')
_PATHS = {'basic': 'one', 'fancy': 'three, two, one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
self.failIf(site._skin_setup_called)
self.assertEqual(len(skins_tool.getSkinPaths()), 2)
@@ -467,8 +466,7 @@
def test_normal(self):
from Products.CMFCore.exportimport.skins import importSkinsTool
- site = self._initSite()
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite()
self.failIf(site._skin_setup_called)
self.assertEqual(len(skins_tool.getSkinPaths()), 0)
@@ -492,8 +490,7 @@
_IDS = ('one', 'two')
_PATHS = {'basic': 'one', 'fancy': 'two,one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
self.failIf(site._skin_setup_called)
skin_paths = skins_tool.getSkinPaths()
@@ -537,8 +534,7 @@
_IDS = ('one', 'two')
_PATHS = {'basic': 'one', 'fancy': 'two,one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
self.failIf(site._skin_setup_called)
skin_paths = skins_tool.getSkinPaths()
@@ -569,8 +565,7 @@
_IDS = ('one', 'two')
_PATHS = {'basic': 'one', 'fancy': 'two,one'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
skin_paths = skins_tool.getSkinPaths()
self.assertEqual(len(skin_paths), 2)
@@ -607,8 +602,7 @@
_IDS = ('one', 'two', 'three', 'four')
_PATHS = {'basic': 'one,three,four', 'existing': 'one,two,four'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
skin_paths = skins_tool.getSkinPaths()
self.assertEqual(len(skin_paths), 2)
@@ -637,8 +631,7 @@
_IDS = ('one', 'two', 'three', 'four')
_PATHS = {'existing': 'one,three,four'}
- site = self._initSite(selections=_PATHS, ids=_IDS)
- skins_tool = site.portal_skins
+ site, skins_tool = self._initSite(selections=_PATHS, ids=_IDS)
skin_paths = skins_tool.getSkinPaths()
self.assertEqual(len(skin_paths), 1)
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_workflow.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -17,6 +17,7 @@
import Testing
from OFS.Folder import Folder
+from zope.component import getSiteManager
from zope.interface import implements
from Products.GenericSetup.testing import BodyAdapterTestCase
@@ -25,6 +26,7 @@
from Products.GenericSetup.tests.common import DummyImportContext
from Products.CMFCore.interfaces import IConfigurableWorkflowTool
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.testing import DummyWorkflow
from Products.CMFCore.testing import ExportImportZCMLLayer
@@ -157,10 +159,10 @@
class _WorkflowSetup(BaseRegistryTests):
def _initSite(self):
- self.root.site = Folder(id='site')
- site = self.root.site
- self.root.site.portal_workflow = DummyWorkflowTool()
- return site
+ site = Folder(id='site').__of__(self.app)
+ wtool = DummyWorkflowTool().__of__(site)
+ getSiteManager().registerUtility(wtool, IWorkflowTool)
+ return site, wtool
class exportWorkflowToolTests(_WorkflowSetup):
@@ -170,7 +172,7 @@
def test_empty(self):
from Products.CMFCore.exportimport.workflow import exportWorkflowTool
- site = self._initSite()
+ site, _wtool = self._initSite()
context = DummyExportContext(site)
exportWorkflowTool(context)
@@ -186,8 +188,8 @@
WF_ID_NON = 'non_dcworkflow'
WF_TITLE_NON = 'Non-DCWorkflow'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
+
nondcworkflow = DummyWorkflow(WF_TITLE_NON)
nondcworkflow.title = WF_TITLE_NON
wf_tool._setObject(WF_ID_NON, nondcworkflow)
@@ -216,8 +218,7 @@
WF_ID_NON = 'non_dcworkflow_%s'
WF_TITLE_NON = 'Non-DCWorkflow #%s'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
for i in range(4):
nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -242,8 +243,7 @@
WF_ID_NON = 'non_dcworkflow_%s'
WF_TITLE_NON = 'Non-DCWorkflow #%s'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
for i in range(4):
nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -268,8 +268,7 @@
WF_ID_NON = 'non_dcworkflow_%s'
WF_TITLE_NON = 'Non-DCWorkflow #%s'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
for i in range(4):
nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -297,8 +296,7 @@
WF_ID_NON = 'non_dcworkflow_%s'
WF_TITLE_NON = 'Non-DCWorkflow #%s'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
for i in range(4):
nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
@@ -329,8 +327,7 @@
WF_ID_NON = 'non_dcworkflow_%s'
WF_TITLE_NON = 'Non-DCWorkflow #%s'
- site = self._initSite()
- wf_tool = site.portal_workflow
+ site, wf_tool = self._initSite()
for i in range(4):
nondcworkflow = DummyWorkflow(WF_TITLE_NON % i)
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -11,11 +11,10 @@
#
##############################################################################
"""Workflow tool xml adapters and setup handlers.
-
-$Id$
"""
from zope.component import adapts
+from zope.component import getSiteManager
from Products.GenericSetup.interfaces import ISetupEnviron
from Products.GenericSetup.utils import exportObjects
@@ -25,7 +24,7 @@
from Products.GenericSetup.utils import XMLAdapterBase
from Products.CMFCore.interfaces import IConfigurableWorkflowTool
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.interfaces import IWorkflowTool
class WorkflowToolXMLAdapter(XMLAdapterBase, ObjectManagerHelpers,
@@ -88,7 +87,7 @@
def _purgeChains(self):
self.context.setDefaultChain('')
- for type_id, chain in self.context.listChainOverrides():
+ for type_id, _chain in self.context.listChainOverrides():
self.context.setChainForPortalTypes((type_id,), None,
verify=False)
@@ -120,8 +119,8 @@
def importWorkflowTool(context):
"""Import workflow tool and contained workflow definitions from XML files.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_workflow', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(IWorkflowTool)
if tool is None:
logger = context.getLogger('workflow')
logger.debug('Nothing to import.')
@@ -132,8 +131,8 @@
def exportWorkflowTool(context):
"""Export workflow tool and contained workflow definitions as XML files.
"""
- site = context.getSite()
- tool = getToolByName(site, 'portal_workflow', None)
+ sm = getSiteManager(context.getSite())
+ tool = sm.queryUtility(IWorkflowTool)
if tool is None:
logger = context.getLogger('workflow')
logger.debug('Nothing to export.')
Property changes on: Products.CMFCore/trunk/Products/CMFCore/exportimport/workflow.py
___________________________________________________________________
Deleted: svn:keywords
- Id
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/base/testcase.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -21,9 +21,13 @@
from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManagement import noSecurityManager
from AccessControl.SecurityManager import setSecurityPolicy
+from OFS.Folder import Folder
+from zope.component import getSiteManager
+from Products.CMFCore.interfaces import ISkinsTool
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.security import AnonymousUser
+from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy
from Products.CMFCore.utils import getPackageLocation
@@ -162,7 +166,23 @@
self.skin_path_name = join(self.tempname, self._skinname,
self._layername)
+ def _makeContext(self, obj_id, filename):
+ newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ stool = Folder('portal_skins')
+ getSiteManager().registerUtility(stool, ISkinsTool)
+
+ stool._setObject('custom', Folder('custom'))
+ custom = stool.custom
+
+ stool._setObject('fsdir', Folder('fsdir'))
+ fsdir = stool.fsdir
+
+ fsdir._setObject(obj_id, self._makeOne(obj_id, filename))
+
+ return stool, custom, fsdir, fsdir[obj_id]
+
+
class WritableFSDVTest(FSDVTest):
# Base class for FSDV test, creates a fake skin
# copy that can be edited.
@@ -233,7 +253,7 @@
join(self.tempname, self._skinname),
ignore=ignore_patterns('.svn'))
# make sure we have a writable copy
- for root, dirs, files in walk(self.tempname):
+ for root, _dirs, files in walk(self.tempname):
for name in files:
chmod(join(root, name), S_IREAD + S_IWRITE)
FSDVTest.setUp(self)
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CMFCatalogAware.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,11 +20,14 @@
from AccessControl.SecurityManagement import newSecurityManager
from OFS.Folder import Folder
from OFS.SimpleItem import SimpleItem
+from zope.component import getSiteManager
from zope.interface import implements
from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
from Products.CMFCore.exceptions import NotFound
+from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.testing import EventZCMLLayer
from Products.CMFCore.testing import TraversingZCMLLayer
from Products.CMFCore.tests.base.testcase import LogInterceptor
@@ -120,8 +123,11 @@
self.root = DummyRoot('')
self.root.site = SimpleFolder('site')
self.site = self.root.site
- self.site._setObject('portal_catalog', DummyCatalog())
- self.site._setObject('portal_workflow', DummyWorkflowTool())
+ sm = getSiteManager()
+ self.ctool = DummyCatalog()
+ sm.registerUtility(self.ctool, ICatalogTool)
+ self.wtool = DummyWorkflowTool()
+ sm.registerUtility(self.wtool, IWorkflowTool)
self.site.foo = TheClass('foo')
def tearDown(self):
@@ -130,26 +136,26 @@
def test_indexObject(self):
foo = self.site.foo
- cat = self.site.portal_catalog
+ cat = self.ctool
foo.indexObject()
self.assertEquals(cat.log, ["index /site/foo"])
def test_unindexObject(self):
foo = self.site.foo
- cat = self.site.portal_catalog
+ cat = self.ctool
foo.unindexObject()
self.assertEquals(cat.log, ["unindex /site/foo"])
def test_reindexObject(self):
foo = self.site.foo
- cat = self.site.portal_catalog
+ cat = self.ctool
foo.reindexObject()
self.assertEquals(cat.log, ["reindex /site/foo []"])
self.assert_(foo.notified)
def test_reindexObject_idxs(self):
foo = self.site.foo
- cat = self.site.portal_catalog
+ cat = self.ctool
foo.reindexObject(idxs=['bar'])
self.assertEquals(cat.log, ["reindex /site/foo ['bar']"])
self.failIf(foo.notified)
@@ -160,7 +166,7 @@
bar = self.site.foo.bar
self.site.foo.hop = TheClass('hop')
hop = self.site.foo.hop
- cat = self.site.portal_catalog
+ cat = self.ctool
cat.setObs([foo, bar, hop])
foo.reindexObjectSecurity()
l = list(cat.log)
@@ -179,7 +185,7 @@
foo = self.site.foo
missing = TheClass('missing').__of__(foo)
missing.GETOBJECT_RAISES = True
- cat = self.site.portal_catalog
+ cat = self.ctool
try:
self._catch_log_errors()
cat.setObs([foo, missing])
@@ -194,7 +200,7 @@
foo = self.site.foo
missing = TheClass('missing').__of__(foo)
missing.GETOBJECT_RAISES = False
- cat = self.site.portal_catalog
+ cat = self.ctool
cat.setObs([foo, missing])
foo.reindexObjectSecurity()
self.assertEquals(cat.log,
@@ -205,11 +211,11 @@
def test_catalog_tool(self):
foo = self.site.foo
- self.assertEqual(foo._getCatalogTool(), self.site.portal_catalog)
+ self.assertEqual(foo._getCatalogTool(), self.ctool)
def test_workflow_tool(self):
foo = self.site.foo
- self.assertEqual(foo._getWorkflowTool(), self.site.portal_workflow)
+ self.assertEqual(foo._getWorkflowTool(), self.wtool)
# FIXME: more tests needed
@@ -221,8 +227,10 @@
def _makeSite(self):
self.app._setObject('site', SimpleFolder('site'))
site = self.app._getOb('site')
- site._setObject('portal_catalog', DummyCatalog())
- site._setObject('portal_workflow', DummyWorkflowTool())
+ sm = getSiteManager()
+ self.ctool = DummyCatalog()
+ sm.registerUtility(self.ctool, ICatalogTool)
+ sm.registerUtility(DummyWorkflowTool(), IWorkflowTool)
# Hack, we need a _p_mtime for the file, so we make sure that it
# has one. We use a subtransaction, which means we can rollback
# later and pretend we didn't touch the ZODB.
@@ -258,7 +266,7 @@
site = self._makeSite()
bar = TheClass('bar')
site._setObject('bar', bar)
- cat = site.portal_catalog
+ cat = self.ctool
self.assertEquals(cat.log, ["index /site/bar"])
def test_object_unindexed_after_removing(self):
@@ -266,7 +274,7 @@
site = self._makeSite()
bar = TheClass('bar')
site._setObject('bar', bar)
- cat = site.portal_catalog
+ cat = self.ctool
cat.log = []
site._delObject('bar')
self.assertEquals(cat.log, ["unindex /site/bar"])
@@ -282,7 +290,7 @@
bar = TheClass('bar')
folder1._setObject('bar', bar)
- cat = site.portal_catalog
+ cat = self.ctool
cat.log = []
transaction.savepoint(optimistic=True)
@@ -303,7 +311,7 @@
bar = TheClass('bar')
folder1._setObject('bar', bar)
- cat = site.portal_catalog
+ cat = self.ctool
cat.log = []
transaction.savepoint(optimistic=True)
@@ -321,7 +329,7 @@
bar = TheClass('bar')
site._setObject('bar', bar)
- cat = site.portal_catalog
+ cat = self.ctool
cat.log = []
transaction.savepoint(optimistic=True)
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -16,11 +16,15 @@
import unittest
from Acquisition import Implicit
+from zope.component import getSiteManager
from zope.interface import implements
+from zope.testing.cleanup import cleanUp
+
from Products.CMFCore.interfaces import ICatalogTool
+from Products.CMFCore.interfaces import IContentish
+from Products.CMFCore.interfaces import IIndexableObject
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.tests.base.dummy import DummyContent
-from Products.CMFCore.interfaces import IIndexableObject
-from Products.CMFCore.interfaces import IContentish
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -61,10 +65,10 @@
return IndexableObjectWrapper
def _makeOne(self, vars, obj):
- self.root = FakeFolder()
- self.root.portal_catalog = FakeCatalog()
- self.root.portal_workflow = FakeWorkflowTool(vars)
- catalog = self.root.portal_catalog
+ self.app = FakeFolder()
+ self.app.portal_catalog = FakeCatalog()
+ getSiteManager().registerUtility(FakeWorkflowTool(vars), IWorkflowTool)
+ catalog = self.app.portal_catalog
return self._getTargetClass()(obj, catalog)
def _makeContent(self, *args, **kw):
@@ -72,6 +76,9 @@
return DummyContent(*args, **kw)
+ def tearDown(self):
+ cleanUp()
+
def test_interfaces(self):
from zope.interface.verify import verifyClass
from Products.CMFCore.interfaces import IIndexableObjectWrapper
@@ -149,13 +156,13 @@
def loginWithRoles(self, *roles):
from AccessControl.SecurityManagement import newSecurityManager
from Products.CMFCore.tests.base.security import UserWithRoles
- user = UserWithRoles(*roles).__of__(self.root)
+ user = UserWithRoles(*roles).__of__(self.app)
newSecurityManager(None, user)
def loginManager(self):
from AccessControl.SecurityManagement import newSecurityManager
from Products.CMFCore.tests.base.security import OmnipotentUser
- user = OmnipotentUser().__of__(self.root)
+ user = OmnipotentUser().__of__(self.app)
newSecurityManager(None, user)
def setupProxyRoles(self, *proxy_roles):
@@ -459,10 +466,9 @@
def test_refreshCatalog(self):
from Products.CMFCore.tests.base.dummy import DummySite
- site = DummySite('site').__of__(self.root)
+ site = DummySite('site').__of__(self.app)
site._setObject('dummy', self._makeContent(catalog=1))
- site._setObject('portal_catalog', self._makeOne())
- ctool = site.portal_catalog
+ ctool = self._makeOne().__of__(site)
ctool.addIndex('meta_type', 'FieldIndex')
ctool.catalog_object(site.dummy, '/dummy')
@@ -535,11 +541,10 @@
def FakeWrapper(object, catalog):
return object
- from zope.component import getSiteManager
- self.sm = getSiteManager()
- self.sm.registerAdapter(FakeWrapper,
- (IContentish, ICatalogTool),
- IIndexableObject)
+ sm = getSiteManager()
+ sm.registerAdapter(FakeWrapper,
+ (IContentish, ICatalogTool),
+ IIndexableObject)
dummy = DummyContent(catalog=1)
ctool = self._makeOne()
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -18,20 +18,19 @@
from os.path import join as path_join
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
from App.Common import rfc1123_date
from DateTime import DateTime
from OFS.Folder import Folder
from Products.StandardCacheManagers import RAMCacheManager
from zope.site.hooks import setHooks
+from zope.testing.cleanup import cleanUp
from Products.CMFCore.FSDTMLMethod import FSDTMLMethod
from Products.CMFCore.FSMetadata import FSMetadata
from Products.CMFCore.tests.base.dummy import DummyCachingManager
from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
from Products.CMFCore.tests.base.dummy import DummyContent
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import RequestTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -105,28 +104,16 @@
self.assertEqual( self.RESPONSE.getStatus(), 304 )
-class FSDTMLMethodCustomizationTests( SecurityTest, FSDTMLMaker ):
+class FSDTMLMethodCustomizationTests(SecurityTest, FSDTMLMaker):
def setUp(self):
FSDTMLMaker.setUp(self)
SecurityTest.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ self.skins, self.custom, self.fsdir, self.fsDTML = self._makeContext(
+ 'testDTML', 'testDTML.dtml')
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- self.skins = self.root.portal_skins
-
- self.skins._setObject( 'custom', Folder( 'custom' ) )
- self.custom = self.skins.custom
-
- self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- self.fsdir = self.skins.fsdir
-
- self.fsdir._setObject( 'testDTML'
- , self._makeOne( 'testDTML', 'testDTML.dtml' ) )
-
- self.fsDTML = self.fsdir.testDTML
-
def tearDown(self):
+ cleanUp()
SecurityTest.tearDown(self)
FSDTMLMaker.tearDown(self)
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -20,7 +20,6 @@
from os.path import join as path_join
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
from OFS.Folder import Folder
from Products.StandardCacheManagers import RAMCacheManager
@@ -31,7 +30,6 @@
from Products.CMFCore.FSPageTemplate import FSPageTemplate
from Products.CMFCore.testing import TraversingZCMLLayer
from Products.CMFCore.tests.base.dummy import DummyCachingManager
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import RequestTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -134,7 +132,6 @@
self.fail('Calling a bad template did not raise an exception')
def test_caching( self ):
-
# Test HTTP caching headers.
self._setupCachingPolicyManager(DummyCachingManager())
original_len = len( self.RESPONSE.headers )
@@ -146,7 +143,6 @@
self.failUnless( 'bar' in self.RESPONSE.headers.keys() )
def test_pt_properties( self ):
-
script = self._makeOne( 'testPT', 'testPT.pt' )
self.assertEqual( script.pt_source_file(), 'file:%s'
% path_join(self.skin_path_name, 'testPT.pt') )
@@ -160,42 +156,26 @@
self.assertEqual(script(), 'foo bar spam eggs\n')
-class FSPageTemplateCustomizationTests( SecurityTest, FSPTMaker ):
+class FSPageTemplateCustomizationTests(SecurityTest, FSPTMaker):
def setUp(self):
FSPTMaker.setUp(self)
SecurityTest.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ self.skins, self.custom, self.fsdir, self.fsPT = self._makeContext(
+ 'testPT', 'testPT.pt')
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- self.skins = self.root.portal_skins
-
- self.skins._setObject( 'custom', Folder( 'custom' ) )
- self.custom = self.skins.custom
-
- self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- self.fsdir = self.skins.fsdir
-
- self.fsdir._setObject( 'testPT'
- , self._makeOne( 'testPT', 'testPT.pt' ) )
-
- self.fsPT = self.fsdir.testPT
-
def tearDown(self):
cleanUp()
SecurityTest.tearDown(self)
FSPTMaker.tearDown(self)
def test_customize( self ):
-
self.fsPT.manage_doCustomize( folder_path='custom' )
self.assertEqual( len( self.custom.objectIds() ), 1 )
self.failUnless( 'testPT' in self.custom.objectIds() )
def test_customize_alternate_root( self ):
-
- from OFS.Folder import Folder
self.root.other = Folder('other')
self.fsPT.manage_doCustomize( folder_path='other', root=self.root )
@@ -204,14 +184,12 @@
self.failUnless( 'testPT' in self.root.other.objectIds() )
def test_customize_fspath_as_dot( self ):
-
self.fsPT.manage_doCustomize( folder_path='.' )
self.failIf( 'testPT' in self.custom.objectIds() )
self.failUnless( 'testPT' in self.skins.objectIds() )
def test_customize_manual_clone( self ):
-
clone = Folder('testPT')
self.fsPT.manage_doCustomize( folder_path='custom', obj=clone )
@@ -237,7 +215,6 @@
def test_dontExpandOnCreation( self ):
-
self.fsPT.manage_doCustomize( folder_path='custom' )
customized = self.custom.testPT
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -15,10 +15,9 @@
import unittest
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
+from zope.testing.cleanup import cleanUp
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -28,43 +27,27 @@
def setUp(self):
FSDVTest.setUp(self)
SecurityTest.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
def tearDown(self):
+ cleanUp()
SecurityTest.tearDown(self)
FSDVTest.tearDown(self)
- def _getTargetClass( self ):
+ def _getTargetClass(self):
from Products.CMFCore.FSPropertiesObject import FSPropertiesObject
+
return FSPropertiesObject
- def _makeOne( self, id, filename ):
+ def _makeOne(self, id, filename):
from os.path import join
path = join(self.skin_path_name, filename)
- return self._getTargetClass()( id, path )
+ return self._getTargetClass()(id, path)
- def _makeContext( self, po_id, po_filename ):
- from OFS.Folder import Folder
-
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- skins = self.root.portal_skins
-
- skins._setObject( 'custom', Folder( 'custom' ) )
- custom = skins.custom
-
- skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- fsdir = skins.fsdir
-
- fsdir._setObject( 'test_props', self._makeOne( po_id, po_filename ) )
- fspo = fsdir.test_props
-
- return custom, fsdir, fspo
-
def test__readFile( self ):
from DateTime.DateTime import DateTime
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
+ _stool, _custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
self.assertEqual( fspo.getProperty( 'title' ), 'Test properties' )
self.assertEqual( fspo.getProperty( 'value1' ), 'one' )
@@ -78,12 +61,11 @@
self.assertEqual( fspo.getProperty( 'a_tokens' )
, [ 'peter', 'paul', 'mary' ] )
- def test__createZODBClone( self ):
-
+ def test__createZODBClone(self):
from OFS.Folder import Folder
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
+ _stool, _custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
target = fspo._createZODBClone()
self.failUnless( isinstance( target, Folder ) )
@@ -91,40 +73,40 @@
self.assertEqual( target.getProperty( prop_id )
, fspo.getProperty( prop_id ) )
- def test_manage_doCustomize( self ):
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
+ def test_manage_doCustomize(self):
+ _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
fspo.manage_doCustomize( folder_path='custom' )
self.assertEqual( len( custom.objectIds() ), 1 )
self.failUnless( 'test_props' in custom.objectIds() )
- def test_manage_doCustomize_alternate_root( self ):
+ def test_manage_doCustomize_alternate_root(self):
from OFS.Folder import Folder
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
- self.root.other = Folder('other')
+ _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
+ self.app.other = Folder('other')
- fspo.manage_doCustomize( folder_path='other', root=self.root )
+ fspo.manage_doCustomize(folder_path='other', root=self.app)
- self.failIf( 'test_props' in custom.objectIds() )
- self.failUnless( 'test_props' in self.root.other.objectIds() )
+ self.failIf('test_props' in custom.objectIds())
+ self.failUnless('test_props' in self.app.other.objectIds())
- def test_manage_doCustomize_fspath_as_dot( self ):
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
+ def test_manage_doCustomize_fspath_as_dot(self):
+ stool, custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
fspo.manage_doCustomize( folder_path='.' )
self.failIf( 'test_props' in custom.objectIds() )
- self.failUnless( 'test_props' in self.root.portal_skins.objectIds() )
+ self.failUnless( 'test_props' in stool.objectIds() )
- def test_manage_doCustomize_manual_clone( self ):
+ def test_manage_doCustomize_manual_clone(self):
from OFS.Folder import Folder
- custom, fsdir, fspo = self._makeContext( 'test_props'
- , 'test_props.props')
+ _stool, custom, _fsdir, fspo = self._makeContext('test_props',
+ 'test_props.props')
clone = Folder('test_props')
fspo.manage_doCustomize( folder_path='custom', obj=clone )
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -23,16 +23,15 @@
from thread import start_new_thread
from time import sleep
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
from DateTime.DateTime import DateTime
from OFS.Folder import Folder
from OFS.SimpleItem import SimpleItem
from Products.StandardCacheManagers import RAMCacheManager
+from zope.testing.cleanup import cleanUp
from Products.CMFCore.FSMetadata import FSMetadata
from Products.CMFCore.FSPythonScript import FSPythonScript
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import SecurityTest
from Products.CMFCore.tests.base.testcase import WarningInterceptor
@@ -71,7 +70,7 @@
# Tries to exercise a former race condition where
# FSObject._updateFromFS() set self._parsed before the
# object was really parsed.
- for n in range(10):
+ for _n in range(10):
f = Folder()
script = self._makeOne('test1', 'test1.py').__of__(f)
res = []
@@ -103,36 +102,16 @@
def setUp(self):
FSPSMaker.setUp(self)
SecurityTest.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
def tearDown(self):
+ cleanUp()
SecurityTest.tearDown(self)
FSPSMaker.tearDown(self)
- def _makeSkins(self):
-
- root = self.root
- root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- tool = self.root.portal_skins
-
- tool._setObject( 'custom', Folder( 'custom' ) )
- custom = tool.custom
-
- tool._setObject( 'fsdir', Folder( 'fsdir' ) )
- fsdir = tool.fsdir
-
- fsdir._setObject( 'test6'
- , self._makeOne( 'test6', 'test6.py' ) )
-
- fsPS = fsdir.test6
-
- return root, tool, custom, fsdir, fsPS
-
- def test_customize( self ):
-
+ def test_customize(self):
from Products.CMFCore.FSPythonScript import CustomizedPythonScript
- root, tool, custom, fsdir, fsPS = self._makeSkins()
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
fsPS.manage_doCustomize( folder_path='custom' )
@@ -144,28 +123,25 @@
self.failUnless(isinstance(test6, CustomizedPythonScript))
self.assertEqual(test6.original_source, fsPS.read())
- def test_customize_alternate_root( self ):
+ def test_customize_alternate_root(self):
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
+ self.app.other = Folder('other')
- root, tool, custom, fsdir, fsPS = self._makeSkins()
- root.other = Folder('other')
+ fsPS.manage_doCustomize(folder_path='other', root=self.app)
- fsPS.manage_doCustomize( folder_path='other', root=root )
+ self.failIf('test6' in custom.objectIds())
+ self.failUnless('test6' in self.app.other.objectIds())
- self.failIf( 'test6' in custom.objectIds() )
- self.failUnless( 'test6' in root.other.objectIds() )
+ def test_customize_fspath_as_dot(self):
+ stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
- def test_customize_fspath_as_dot( self ):
-
- root, tool, custom, fsdir, fsPS = self._makeSkins()
-
fsPS.manage_doCustomize( folder_path='.' )
self.failIf( 'test6' in custom.objectIds() )
- self.failUnless( 'test6' in root.portal_skins.objectIds() )
+ self.failUnless( 'test6' in stool.objectIds() )
- def test_customize_manual_clone( self ):
-
- root, tool, custom, fsdir, fsPS = self._makeSkins()
+ def test_customize_manual_clone(self):
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
clone = Folder('test6')
fsPS.manage_doCustomize( folder_path='custom', obj=clone )
@@ -175,10 +151,10 @@
def test_customize_caching(self):
# Test to ensure that cache manager associations survive customizing
- root, tool, custom, fsdir, fsPS = self._makeSkins()
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
cache_id = 'gofast'
- RAMCacheManager.manage_addRAMCacheManager( root
+ RAMCacheManager.manage_addRAMCacheManager( self.app
, cache_id
, REQUEST=None
)
@@ -193,7 +169,7 @@
def test_customize_proxyroles(self):
# Test to ensure that proxy roles survive customizing
- root, tool, custom, fsdir, fsPS = self._makeSkins()
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
fsPS._proxy_roles = ('Manager', 'Anonymous')
self.failUnless(fsPS.manage_haveProxy('Anonymous'))
@@ -206,7 +182,7 @@
def test_customization_permissions(self):
# Test to ensure that permission settings survive customizing
- root, tool, custom, fsdir, fsPS = self._makeSkins()
+ _stool, custom, _fsdir, fsPS = self._makeContext('test6', 'test6.py')
perm = 'View management screens'
# First, set a permission to an odd role and verify
@@ -317,13 +293,13 @@
SecurityTest.tearDown(self)
def testFSPSWarn(self):
- self.root._setObject('warn_me', WarnMe(2))
- self.root._setObject('warn1', self._makeOne('warn1', 'test_warn.py'))
+ self.app._setObject('warn_me', WarnMe(2))
+ self.app._setObject('warn1', self._makeOne('warn1', 'test_warn.py'))
# This used to raise an error:
# File "/usr/local/python2.3/lib/python2.3/warnings.py", line 63, in warn_explicit
# if module[-3:].lower() == ".py":
# TypeError: unsubscriptable object
- self.root.warn1()
+ self.app.warn1()
def test_suite():
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
import os
import re
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
from App.Common import rfc1123_date
from zope.testing.cleanup import cleanUp
from Products.CMFCore.testing import TraversingZCMLLayer
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import RequestTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -152,26 +150,11 @@
class FSReSTMethodCustomizationTests(SecurityTest, FSReSTMaker):
def setUp(self):
- from OFS.Folder import Folder
-
SecurityTest.setUp(self)
FSReSTMaker.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ self.skins, self.custom, self.fsdir, self.fsReST = self._makeContext(
+ 'testReST', 'testReST.rst')
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- self.skins = self.root.portal_skins
-
- self.skins._setObject( 'custom', Folder( 'custom' ) )
- self.custom = self.skins.custom
-
- self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- self.fsdir = self.skins.fsdir
-
- self.fsdir._setObject( 'testReST'
- , self._makeOne( 'testReST', 'testReST.rst' ) )
-
- self.fsReST = self.fsdir.testReST
-
def tearDown(self):
cleanUp()
FSReSTMaker.tearDown(self)
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
import os
import re
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
from App.Common import rfc1123_date
from zope.testing.cleanup import cleanUp
from Products.CMFCore.testing import TraversingZCMLLayer
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import RequestTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -185,27 +183,12 @@
):
def setUp(self):
- from OFS.Folder import Folder
-
_TemplateSwitcher.setUp(self)
SecurityTest.setUp(self)
FSSTXMaker.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ self.skins, self.custom, self.fsdir, self.fsSTX = self._makeContext(
+ 'testSTX', 'testSTX.stx')
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- self.skins = self.root.portal_skins
-
- self.skins._setObject( 'custom', Folder( 'custom' ) )
- self.custom = self.skins.custom
-
- self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- self.fsdir = self.skins.fsdir
-
- self.fsdir._setObject( 'testSTX'
- , self._makeOne( 'testSTX', 'testSTX.stx' ) )
-
- self.fsSTX = self.fsdir.testSTX
-
def tearDown(self):
cleanUp()
FSSTXMaker.tearDown(self)
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -19,13 +19,11 @@
from os.path import join
-from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_base
-from OFS.Folder import Folder
+from zope.testing.cleanup import cleanUp
from Products.CMFCore.FSMetadata import FSMetadata
from Products.CMFCore.FSZSQLMethod import FSZSQLMethod
-from Products.CMFCore.tests.base.security import OmnipotentUser
from Products.CMFCore.tests.base.testcase import FSDVTest
from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -64,65 +62,49 @@
def setUp(self):
FSZSQLMaker.setUp(self)
SecurityTest.setUp(self)
- newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
+ self.skins, self.custom, self.fsdir, self.fsZSQL = self._makeContext(
+ 'testsql', 'testsql.zsql')
- self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
- self.skins = self.root.portal_skins
-
- self.skins._setObject( 'custom', Folder( 'custom' ) )
- self.custom = self.skins.custom
-
- self.skins._setObject( 'fsdir', Folder( 'fsdir' ) )
- self.fsdir = self.skins.fsdir
-
- self.fsdir._setObject( 'testsql'
- , self._makeOne( 'testsql', 'testsql.zsql' ) )
-
- self.fsZSQL = self.fsdir.testsql
-
def tearDown(self):
+ cleanUp()
SecurityTest.tearDown(self)
FSZSQLMaker.tearDown(self)
- def test_customize( self ):
+ def test_customize(self):
+ self.fsZSQL.manage_doCustomize(folder_path='custom')
- self.fsZSQL.manage_doCustomize( folder_path='custom' )
+ self.assertEqual(len(self.custom.objectIds()), 1)
+ self.failUnless('testsql' in self.custom.objectIds())
- self.assertEqual( len( self.custom.objectIds() ), 1 )
- self.failUnless( 'testsql' in self.custom.objectIds() )
-
- def test_customize_alternate_root( self ):
-
+ def test_customize_alternate_root(self):
from OFS.Folder import Folder
- self.root.other = Folder('other')
+ self.app.other = Folder('other')
- self.fsZSQL.manage_doCustomize( folder_path='other', root=self.root )
+ self.fsZSQL.manage_doCustomize(folder_path='other', root=self.app)
- self.failIf( 'testsql' in self.custom.objectIds() )
- self.failUnless( 'testsql' in self.root.other.objectIds() )
+ self.failIf('testsql' in self.custom.objectIds())
+ self.failUnless('testsql' in self.app.other.objectIds())
- def test_customize_fspath_as_dot( self ):
+ def test_customize_fspath_as_dot(self):
+ self.fsZSQL.manage_doCustomize(folder_path='.')
- self.fsZSQL.manage_doCustomize( folder_path='.' )
+ self.failIf('testsql' in self.custom.objectIds())
+ self.failUnless('testsql' in self.skins.objectIds())
- self.failIf( 'testsql' in self.custom.objectIds() )
- self.failUnless( 'testsql' in self.skins.objectIds() )
-
- def test_customize_manual_clone( self ):
-
+ def test_customize_manual_clone(self):
from OFS.Folder import Folder
clone = Folder('testsql')
- self.fsZSQL.manage_doCustomize( folder_path='custom', obj=clone )
+ self.fsZSQL.manage_doCustomize(folder_path='custom', obj=clone)
- self.failUnless( 'testsql' in self.custom.objectIds() )
- self.failUnless( aq_base(self.custom._getOb('testsql')) is clone )
+ self.failUnless('testsql' in self.custom.objectIds())
+ self.failUnless(aq_base(self.custom._getOb('testsql')) is clone)
def test_customize_properties(self):
# Make sure all properties are coming across
- self.fsZSQL.manage_doCustomize( folder_path='custom' )
+ self.fsZSQL.manage_doCustomize(folder_path='custom')
zsql = self.custom.testsql
self.assertEqual(zsql.title, 'This is a title')
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_MembershipTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -25,6 +25,7 @@
from Products.CMFCore.CMFBTreeFolder import CMFBTreeFolder
from Products.CMFCore.interfaces import IMemberDataTool
from Products.CMFCore.interfaces import ISiteRoot
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.MemberDataTool import MemberDataTool
from Products.CMFCore.PortalFolder import PortalFolder
from Products.CMFCore.tests.base.dummy import DummySite
@@ -73,7 +74,7 @@
mtool = site.portal_membership
members = site._setObject( 'Members', PortalFolder('Members') )
acl_users = site._setObject( 'acl_users', DummyUserFolder() )
- wtool = site._setObject( 'portal_workflow', DummyTool() )
+ getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
# permission
mtool.createMemberArea('user_foo')
@@ -106,7 +107,7 @@
mtool = site.portal_membership
members = site._setObject( 'Members', CMFBTreeFolder('Members') )
acl_users = site._setObject( 'acl_users', DummyUserFolder() )
- wtool = site._setObject( 'portal_workflow', DummyTool() )
+ getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
# permission
mtool.createMemberArea('user_foo')
@@ -140,7 +141,7 @@
site = self._makeSite( self.root.folder )
mtool = site.portal_membership
members = site._setObject( 'Members', PortalFolder('Members') )
- wtool = site._setObject( 'portal_workflow', DummyTool() )
+ getSiteManager().registerUtility(DummyTool(), IWorkflowTool)
local_uf = DummyUserFolder()
delattr( local_uf, NONLOCAL_USER_ID )
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -32,6 +32,7 @@
from Products.CMFCore.exceptions import BadRequest
from Products.CMFCore.interfaces import ICatalogTool
from Products.CMFCore.interfaces import ITypesTool
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.testing import ConformsToFolder
from Products.CMFCore.testing import FunctionalZCMLLayer
from Products.CMFCore.testing import TraversingEventZCMLLayer
@@ -96,7 +97,7 @@
SecurityTest.setUp(self)
sm = getSiteManager()
sm.registerUtility(self._getTargetObject(), IFactory, 'cmf.folder')
- self.site = DummySite('site').__of__(self.root)
+ self.site = DummySite('site').__of__(self.app)
acl_users = self.site._setObject('acl_users', DummyUserFolder())
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -166,7 +167,7 @@
def setUp(self):
SecurityTest.setUp(self)
- self.site = DummySite('site').__of__(self.root)
+ self.site = DummySite('site').__of__(self.app)
def test_contents_methods(self):
acl_users = self.site._setObject('acl_users', DummyUserFolder())
@@ -251,34 +252,43 @@
acl_users = self.site._setObject('acl_users', DummyUserFolder())
newSecurityManager(None, acl_users.all_powerful_Oz)
test = self._makeOne('test')
- ttool = self.site._setObject( 'portal_types', TypesTool() )
- ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
- self.assertEqual( len(ctool), 0 )
+ self.site._setObject('portal_types', TypesTool())
+ ctool = DummyCatalogTool()
+ getSiteManager().registerUtility(ctool, ICatalogTool)
+ self.assertEqual(len(ctool), 0)
- test._setObject( 'foo', DummyContent( 'foo' , catalog=1 ) )
+ test._setObject('foo', DummyContent('foo' , catalog=1))
foo = test.foo
- self.failUnless( foo.after_add_called )
- self.failIf( foo.before_delete_called )
- self.assertEqual( len(ctool), 1 )
+ self.failUnless(foo.after_add_called)
+ self.failIf(foo.before_delete_called)
+ self.assertEqual(len(ctool), 1)
foo.reset()
test._delObject('foo')
- self.failIf( foo.after_add_called )
- self.failUnless( foo.before_delete_called )
- self.assertEqual( len(ctool), 0 )
+ self.failIf(foo.after_add_called)
+ self.failUnless(foo.before_delete_called)
+ self.assertEqual(len(ctool), 0)
+ getSiteManager().unregisterUtility(provided=ICatalogTool)
+
def test_portalfolder_cataloging(self):
#
# Test to ensure a portal folder itself is *not* cataloged upon
# instantiation (Tracker issue 309)
#
- ttool = self.site._setObject( 'portal_types', TypesTool() )
- ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
- wftool = self.site._setObject( 'portal_workflow', WorkflowTool() )
+ self.site._setObject('portal_types', TypesTool())
+ sm = getSiteManager()
+ ctool = DummyCatalogTool()
+ sm.registerUtility(ctool, ICatalogTool)
+ wtool = WorkflowTool()
+ sm.registerUtility(wtool, IWorkflowTool)
test = self._makeOne('test')
- wftool.notifyCreated(test)
- self.assertEqual( len(ctool), 0 )
+ wtool.notifyCreated(test)
+ self.assertEqual(len(ctool), 0)
+ sm.unregisterUtility(provided=ICatalogTool)
+ sm.unregisterUtility(provided=IWorkflowTool)
+
def test_tracker261(self):
#
# Tracker issue #261 says that content in a deleted folder
@@ -290,9 +300,10 @@
acl_users = self.site._setObject('acl_users', DummyUserFolder())
newSecurityManager(None, acl_users.all_powerful_Oz)
test = self._makeOne('test')
- ttool = self.site._setObject( 'portal_types', TypesTool() )
- ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
- self.assertEqual( len(ctool), 0 )
+ self.site._setObject('portal_types', TypesTool())
+ ctool = DummyCatalogTool()
+ getSiteManager().registerUtility(ctool, ICatalogTool)
+ self.assertEqual(len(ctool), 0)
test._setObject( 'sub', PortalFolder( 'sub', '' ) )
sub = test.sub
@@ -310,6 +321,8 @@
self.failUnless( foo.before_delete_called )
self.assertEqual( len(ctool), 0 )
+ getSiteManager().unregisterUtility(provided=ICatalogTool)
+
def test_manageAddFolder(self):
#
# Does MKDIR/MKCOL intercept work?
@@ -359,7 +372,7 @@
self._context._setOb( id, PortalFolder( id ) )
self._context._getOb( id )._setPortalTypeName( 'Grabbed' )
- self.root.grabbed = Grabbed(test)
+ self.app.grabbed = Grabbed(test)
test.manage_addFolder(id='indirect', title='Indirect')
self.assertEqual( test.indirect.getPortalTypeName(), 'Grabbed' )
@@ -432,9 +445,11 @@
return self._workflows
# Now copy/paste verification should raise a ValueError
- self.site.portal_workflow = DummyWorkflowTool()
+ getSiteManager().registerUtility(DummyWorkflowTool(), IWorkflowTool)
self.assertRaises(ValueError, folder._verifyObjectPaste, content)
+ getSiteManager().unregisterUtility(provided=IWorkflowTool)
+
def test_setObjectRaisesBadRequest(self):
#
# _setObject() should raise BadRequest on duplicate id
@@ -517,8 +532,8 @@
def setUp(self):
SecurityTest.setUp(self)
- self.root._setObject( 'site', DummySite('site') )
- self.site = self.root.site
+ self.app._setObject('site', DummySite('site'))
+ self.site = self.app.site
def _makeOne(self, id, *args, **kw):
from Products.CMFCore.PortalFolder import PortalFolder
@@ -533,8 +548,9 @@
acl_users = self.site._setObject('acl_users', DummyUserFolder())
newSecurityManager(None, acl_users.all_powerful_Oz)
- ttool = self.site._setObject( 'portal_types', TypesTool() )
- ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
+ self.site._setObject( 'portal_types', TypesTool() )
+ ctool = DummyCatalogTool()
+ getSiteManager().registerUtility(ctool, ICatalogTool)
self.assertEqual( len(ctool), 0 )
folder = self._makeOne('folder')
@@ -580,7 +596,8 @@
#
acl_users = self.site._setObject('acl_users', DummyUserFolder())
newSecurityManager(None, acl_users.all_powerful_Oz)
- ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
+ ctool = DummyCatalogTool()
+ getSiteManager().registerUtility(ctool, ICatalogTool)
ttool = self.site._setObject( 'portal_types', TypesTool() )
fti = FTIDATA_DUMMY[0].copy()
ttool._setObject( 'Dummy Content', FTI(**fti) )
@@ -967,7 +984,6 @@
self.app._setObject( 'folder1', PortalFolder( 'folder1' ) )
self.app._setObject( 'folder2', PortalFolder( 'folder2' ) )
folder1 = getattr( self.app, 'folder1' )
- folder2 = getattr( self.app, 'folder2' )
manage_addFile(folder1, 'file', file='', content_type='text/plain')
# Hack, we need a _p_mtime for the file, so we make sure that it
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py 2011-09-16 12:17:22 UTC (rev 122819)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py 2011-09-16 12:18:39 UTC (rev 122820)
@@ -16,7 +16,9 @@
import unittest
from AccessControl.Permission import Permission
+from zope.component import getSiteManager
+from Products.CMFCore.interfaces import IWorkflowTool
from Products.CMFCore.testing import FunctionalZCMLLayer
from Products.CMFCore.tests.base.testcase import SecurityTest
from Products.CMFCore.tests.base.testcase import WarningInterceptor
@@ -99,7 +101,7 @@
from Acquisition import aq_base
from Products.CMFCore.interfaces import ITypeInformation
from webdav.NullResource import NullResource
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
tool = self._makeOne().__of__(site)
meta_types = {}
# Seems we get NullResource if the method couldn't be traverse to
@@ -121,7 +123,7 @@
from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -140,7 +142,7 @@
from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -160,7 +162,7 @@
from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -180,7 +182,7 @@
from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -201,7 +203,7 @@
from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
from Products.CMFCore.tests.base.dummy import DummyFolder
from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -210,11 +212,14 @@
tool._setObject('Dummy Content', FTI(**fti))
folder = DummyFolder(id='folder', fake_product=1).__of__(site)
tool.portal_workflow = DummyWorkflowTool(DummyWorkflow(False))
+ getSiteManager().registerUtility(tool.portal_workflow, IWorkflowTool)
self.assertRaises(Unauthorized,
tool.constructContent,
'Dummy Content', container=folder, id='page1')
+ getSiteManager().unregisterUtility(provided=IWorkflowTool)
+
def test_constructContent_simple_STI(self):
from AccessControl import Unauthorized
from AccessControl.SecurityManagement import newSecurityManager
@@ -225,7 +230,7 @@
from Products.CMFCore.tests.base.dummy import DummyFactoryDispatcher
from Products.CMFCore.tests.base.tidata import STI_SCRIPT
from Products.PythonScripts.PythonScript import PythonScript
- site = self._makeSite().__of__(self.root)
+ site = self._makeSite().__of__(self.app)
acl_users = site.acl_users
setSecurityPolicy(self._oldPolicy)
newSecurityManager(None, acl_users.all_powerful_Oz)
@@ -318,8 +323,8 @@
taf = self._makeAndSetInstance( 'Allowing Folder'
, allowed_content_types=( 'Hidden'
,'Not Hidden'))
- tih = self._makeAndSetInstance( 'Hidden', global_allow=0)
- tnh = self._makeAndSetInstance( 'Not Hidden')
+ self._makeAndSetInstance('Hidden', global_allow=0)
+ self._makeAndSetInstance('Not Hidden')
# make sure we're normally hidden but everything else is visible
self.failIf ( tnf.allowType( 'Hidden' ) )
self.failUnless ( tnf.allowType( 'Not Hidden') )
More information about the checkins
mailing list