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"> _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins