[Zope-Checkins] SVN: Zope/trunk/ Removed deprecated ``catalog-getObject-raises`` zope.conf option. The option was slated for removal in Zope 2.10.
Hanno Schlichting
hannosch at hannosch.eu
Sun Aug 1 05:44:24 EDT 2010
Log message for revision 115301:
Removed deprecated ``catalog-getObject-raises`` zope.conf option. The option was slated for removal in Zope 2.10.
Changed:
U Zope/trunk/doc/CHANGES.rst
U Zope/trunk/src/Products/ZCatalog/CatalogBrains.py
U Zope/trunk/src/Products/ZCatalog/tests/test_brains.py
U Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py
U Zope/trunk/src/Zope2/Startup/handlers.py
U Zope/trunk/src/Zope2/Startup/zopeschema.xml
-=-
Modified: Zope/trunk/doc/CHANGES.rst
===================================================================
--- Zope/trunk/doc/CHANGES.rst 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/doc/CHANGES.rst 2010-08-01 09:44:24 UTC (rev 115301)
@@ -35,6 +35,8 @@
Restructuring
+++++++++++++
+- Removed deprecated ``catalog-getObject-raises`` zope.conf option.
+
- Removed unmaintained HelpSys documents from ZCatalog and PluginIndexes.
Useful explanations are given inside the form templates.
Modified: Zope/trunk/src/Products/ZCatalog/CatalogBrains.py
===================================================================
--- Zope/trunk/src/Products/ZCatalog/CatalogBrains.py 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/src/Products/ZCatalog/CatalogBrains.py 2010-08-01 09:44:24 UTC (rev 115301)
@@ -16,15 +16,10 @@
import Acquisition
from Acquisition import aq_parent
import Record
-from ZODB.POSException import ConflictError
from interfaces import ICatalogBrain
-# Switch for new behavior, raise exception instead of returning None.
-# Use 'catalog-getObject-raises off' in zope.conf to restore old behavior.
-GETOBJECT_RAISES = True
-
class AbstractCatalogBrain(Record.Record, Acquisition.Implicit):
"""Abstract base brain that handles looking up attributes as
required, and provides just enough smarts to let us get the URL, path,
@@ -51,14 +46,7 @@
Same as getObject, but does not do security checks.
"""
- try:
- return aq_parent(self).unrestrictedTraverse(self.getPath())
- except ConflictError:
- raise
- except Exception:
- if GETOBJECT_RAISES:
- raise
- return None
+ return aq_parent(self).unrestrictedTraverse(self.getPath())
def getObject(self, REQUEST=None):
"""Return the object for this record
@@ -76,26 +64,10 @@
return None
parent = aq_parent(self)
if len(path) > 1:
- try:
- parent = parent.unrestrictedTraverse(path[:-1])
- except ConflictError:
- raise
- except Exception:
- if GETOBJECT_RAISES:
- raise
- return None
+ parent = parent.unrestrictedTraverse(path[:-1])
- try:
- target = parent.restrictedTraverse(path[-1])
- except ConflictError:
- raise
- except Exception:
- if GETOBJECT_RAISES:
- raise
- return None
+ return parent.restrictedTraverse(path[-1])
- return target
-
def getRID(self):
"""Return the record ID for this object."""
return self.data_record_id_
Modified: Zope/trunk/src/Products/ZCatalog/tests/test_brains.py
===================================================================
--- Zope/trunk/src/Products/ZCatalog/tests/test_brains.py 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/src/Products/ZCatalog/tests/test_brains.py 2010-08-01 09:44:24 UTC (rev 115301)
@@ -99,28 +99,12 @@
raise ConflictError
-class BrainsTestBase(object):
+class TestBrains(unittest.TestCase):
- _old_flag = None
-
def setUp(self):
self.cat = DummyCatalog()
self.cat.REQUEST = DummyRequest()
- self._init_getOb_flag()
- def tearDown(self):
- if self._old_flag is not None:
- self._restore_getOb_flag()
-
- def _init_getOb_flag(self):
- from Products.ZCatalog import CatalogBrains
- self._old_flag = CatalogBrains.GETOBJECT_RAISES
- CatalogBrains.GETOBJECT_RAISES = self._flag_value()
-
- def _restore_getOb_flag(self):
- from Products.ZCatalog import CatalogBrains
- CatalogBrains.GETOBJECT_RAISES = self._old_flag
-
def _makeBrain(self, rid):
from Products.ZCatalog.CatalogBrains import AbstractCatalogBrain
@@ -165,12 +149,6 @@
self.assertEqual(b.getPath(), '/conflicter')
self.assertRaises(ConflictError, b.getObject)
-
-class TestBrains(BrainsTestBase, unittest.TestCase):
-
- def _flag_value(self):
- return True
-
def testGetObjectRaisesUnauthorized(self):
from zExceptions import Unauthorized
b = self._makeBrain(2)
@@ -185,25 +163,7 @@
self.assertRaises((NotFound, AttributeError, KeyError), b.getObject)
-class TestBrainsOldBehavior(BrainsTestBase, unittest.TestCase):
-
- def _flag_value(self):
- return False
-
- def testGetObjectReturnsNoneForUnauthorized(self):
- b = self._makeBrain(2)
- self.assertEqual(b.getPath(), '/secret')
- self.assertEqual(b.getObject(), None)
-
- def testGetObjectReturnsNoneForMissing(self):
- b = self._makeBrain(3)
- self.assertEqual(b.getPath(), '/zonked')
- self.assertRaises(KeyError, self.cat.getobject, 3)
- self.assertEqual(b.getObject(), None)
-
-
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestBrains))
- suite.addTest(unittest.makeSuite(TestBrainsOldBehavior))
return suite
Modified: Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py
===================================================================
--- Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py 2010-08-01 09:44:24 UTC (rev 115301)
@@ -709,8 +709,6 @@
class TestZCatalogGetObject(unittest.TestCase):
# Test what objects are returned by brain.getObject()
- _old_flag = None
-
def setUp(self):
from Products.ZCatalog.ZCatalog import ZCatalog
catalog = ZCatalog('catalog')
@@ -722,18 +720,7 @@
def tearDown(self):
noSecurityManager()
- if self._old_flag is not None:
- self._restore_getObject_flag()
- def _init_getObject_flag(self, flag):
- from Products.ZCatalog import CatalogBrains
- self._old_flag = CatalogBrains.GETOBJECT_RAISES
- CatalogBrains.GETOBJECT_RAISES = flag
-
- def _restore_getObject_flag(self):
- from Products.ZCatalog import CatalogBrains
- CatalogBrains.GETOBJECT_RAISES = self._old_flag
-
def test_getObject_found(self):
# Check normal traversal
root = self.root
@@ -747,7 +734,6 @@
def test_getObject_missing_raises_NotFound(self):
# Check that if the object is missing we raise
from zExceptions import NotFound
- self._init_getObject_flag(True)
root = self.root
catalog = root.catalog
root.ob = Folder('ob')
@@ -760,7 +746,6 @@
def test_getObject_restricted_raises_Unauthorized(self):
# Check that if the object's security does not allow traversal,
# None is returned
- self._init_getObject_flag(True)
root = self.root
catalog = root.catalog
root.fold = Folder('fold')
@@ -782,42 +767,6 @@
self.failIf(ob is None)
self.assertEqual(ob.getId(), 'ob')
- def test_getObject_missing_returns_None(self):
- # Check that if the object is missing None is returned
- self._init_getObject_flag(False)
- root = self.root
- catalog = root.catalog
- root.ob = Folder('ob')
- catalog.catalog_object(root.ob)
- brain = catalog.searchResults({'id': 'ob'})[0]
- del root.ob
- self.assertEqual(brain.getObject(), None)
-
- def test_getObject_restricted_returns_None(self):
- # Check that if the object's security does not allow traversal,
- # None is returned
- self._init_getObject_flag(False)
- root = self.root
- catalog = root.catalog
- root.fold = Folder('fold')
- root.fold.ob = Folder('ob')
- catalog.catalog_object(root.fold.ob)
- brain = catalog.searchResults({'id': 'ob'})[0]
- # allow all accesses
- pickySecurityManager = PickySecurityManager()
- setSecurityManager(pickySecurityManager)
- self.assertEqual(brain.getObject().getId(), 'ob')
- # disallow just 'ob' access
- pickySecurityManager = PickySecurityManager(['ob'])
- setSecurityManager(pickySecurityManager)
- self.assertEqual(brain.getObject(), None)
- # disallow just 'fold' access
- pickySecurityManager = PickySecurityManager(['fold'])
- setSecurityManager(pickySecurityManager)
- ob = brain.getObject()
- self.failIf(ob is None)
- self.assertEqual(ob.getId(), 'ob')
-
# Now test _unrestrictedGetObject
def test_unrestrictedGetObject_found(self):
@@ -855,7 +804,6 @@
def test_unrestrictedGetObject_missing_raises_NotFound(self):
# Check that if the object is missing we raise
from zExceptions import NotFound
- self._init_getObject_flag(True)
root = self.root
catalog = root.catalog
root.ob = Folder('ob')
@@ -865,18 +813,7 @@
self.assertRaises((NotFound, AttributeError, KeyError),
brain._unrestrictedGetObject)
- def test_unrestrictedGetObject_missing_returns_None(self):
- # Check that if the object is missing None is returned
- self._init_getObject_flag(False)
- root = self.root
- catalog = root.catalog
- root.ob = Folder('ob')
- catalog.catalog_object(root.ob)
- brain = catalog.searchResults({'id': 'ob'})[0]
- del root.ob
- self.assertEqual(brain._unrestrictedGetObject(), None)
-
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAddDelColumn))
Modified: Zope/trunk/src/Zope2/Startup/handlers.py
===================================================================
--- Zope/trunk/src/Zope2/Startup/handlers.py 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/src/Zope2/Startup/handlers.py 2010-08-01 09:44:24 UTC (rev 115301)
@@ -1,7 +1,5 @@
import os
import sys
-import time
-import logging
from re import compile
from socket import gethostbyaddr
@@ -23,7 +21,7 @@
def debug_mode(value):
value and _setenv('Z_DEBUG_MODE', '1')
import Globals # to set value
- Globals.DevelopmentMode = boolean(value)
+ Globals.DevelopmentMode = bool(value)
return value
def locale(value):
@@ -118,20 +116,6 @@
import webdav
webdav.enable_ms_public_header = value
-def catalog_getObject_raises(value):
-
- if value is not None:
-
- import warnings
- warnings.warn(
- "'catalog-getObject-raises' option will be removed in Zope 2.10:\n",
- DeprecationWarning)
-
- from Products.ZCatalog import CatalogBrains
- CatalogBrains.GETOBJECT_RAISES = bool(value)
-
- return value
-
# server handlers
def root_handler(config):
Modified: Zope/trunk/src/Zope2/Startup/zopeschema.xml
===================================================================
--- Zope/trunk/src/Zope2/Startup/zopeschema.xml 2010-08-01 09:35:51 UTC (rev 115300)
+++ Zope/trunk/src/Zope2/Startup/zopeschema.xml 2010-08-01 09:44:24 UTC (rev 115301)
@@ -855,17 +855,6 @@
</description>
</key>
- <key name="catalog-getObject-raises" datatype="boolean"
- handler="catalog_getObject_raises">
- <description>
- If this directive is set to "on" (the default), ZCatalog brains objects
- will raise NotFound exceptions from 'getObject' for unreachable objects,
- and Unauthorized for disallowed objects. If the option is "off", they
- will return None in such cases (which was the old behavior)
- </description>
- <metadefault>on</metadefault>
- </key>
-
<multisection type="ZServer.server" name="*" attribute="servers"/>
<key name="port-base" datatype="integer" default="0">
More information about the Zope-Checkins
mailing list