[Zope-Checkins] SVN: Zope/branches/2.11/ Don't publish acquired attributes if acquired object has no docstring.

Tres Seaver tseaver at palladion.com
Sun Feb 6 08:27:36 EST 2011


Log message for revision 120126:
  Don't publish acquired attributes if acquired object has no docstring.
  
  See https://bugs.launchpad.net/zope2/+bug/713253/
  

Changed:
  U   Zope/branches/2.11/doc/CHANGES.txt
  U   Zope/branches/2.11/inst/WinBuilders/mk/zope.mk
  U   Zope/branches/2.11/inst/versions.py
  U   Zope/branches/2.11/lib/python/ZPublisher/BaseRequest.py
  U   Zope/branches/2.11/lib/python/ZPublisher/tests/testBaseRequest.py
  U   Zope/branches/2.11/setup.py

-=-
Modified: Zope/branches/2.11/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.11/doc/CHANGES.txt	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/doc/CHANGES.txt	2011-02-06 13:27:36 UTC (rev 120126)
@@ -4,6 +4,14 @@
   Change information for previous versions of Zope can be found in the
   file HISTORY.txt.
 
+  Zope 2.11.8 (2011/02/04)
+
+    Bugs fixed
+
+      - Prevent publication of acquired attributes, where the acquired
+        object does not have a docstring.
+        https://bugs.launchpad.net/zope2/+bug/713253/
+
   Zope 2.11.7 (2010/09/01)
 
     Bugs Fixed

Modified: Zope/branches/2.11/inst/WinBuilders/mk/zope.mk
===================================================================
--- Zope/branches/2.11/inst/WinBuilders/mk/zope.mk	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/inst/WinBuilders/mk/zope.mk	2011-02-06 13:27:36 UTC (rev 120126)
@@ -1,4 +1,4 @@
-ZOPEVERSION = 2.11.7-final
+ZOPEVERSION = 2.11.8-final
 ZOPEDIRNAME := Zope-$(ZOPEVERSION)
 
 ZOPE_REQUIRED_FILES=tmp/$(ZOPEDIRNAME).tgz

Modified: Zope/branches/2.11/inst/versions.py
===================================================================
--- Zope/branches/2.11/inst/versions.py	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/inst/versions.py	2011-02-06 13:27:36 UTC (rev 120126)
@@ -1,5 +1,5 @@
 ZOPE_MAJOR_VERSION  = '2.11'
-ZOPE_MINOR_VERSION  = '7'
+ZOPE_MINOR_VERSION  = '8'
 ZOPE_BRANCH_NAME    = '$Name$'[6:] or 'no-branch'
 
 # always start prerelease branches with '0' to avoid upgrade

Modified: Zope/branches/2.11/lib/python/ZPublisher/BaseRequest.py
===================================================================
--- Zope/branches/2.11/lib/python/ZPublisher/BaseRequest.py	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/lib/python/ZPublisher/BaseRequest.py	2011-02-06 13:27:36 UTC (rev 120126)
@@ -116,23 +116,21 @@
                     # Again, clear any error status created by __bobo_traverse__
                     # because we actually found something:
                     request.response.setStatus(200)
-                    return subobject
                 except AttributeError:
                     pass
 
                 # Lastly we try with key access:
-                try:
-                    subobject = object[name]
-                except TypeError: # unsubscriptable
-                    raise KeyError(name)
+                if subobject is None:
+                    try:
+                        subobject = object[name]
+                    except TypeError: # unsubscriptable
+                        raise KeyError(name)
                 
 
         # Ensure that the object has a docstring, or that the parent
         # object has a pseudo-docstring for the object. Objects that
         # have an empty or missing docstring are not published.
         doc = getattr(subobject, '__doc__', None)
-        if doc is None:
-            doc = getattr(object, '%s__doc__' % name, None)
         if not doc:
             raise Forbidden(
                 "The object at %s has an empty or missing " \

Modified: Zope/branches/2.11/lib/python/ZPublisher/tests/testBaseRequest.py
===================================================================
--- Zope/branches/2.11/lib/python/ZPublisher/tests/testBaseRequest.py	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/lib/python/ZPublisher/tests/testBaseRequest.py	2011-02-06 13:27:36 UTC (rev 120126)
@@ -166,6 +166,13 @@
         r = self._makeOne(root)
         self.assertRaises(NotFound, r.traverse, 'folder/objBasic/noview')
 
+    def test_traverse_acquired_attribute_without_docstring(self):
+        from ZPublisher import NotFound
+        root, folder = self._makeRootAndFolder()
+        root._setObject('objBasic', DummyObjectWithoutDocstring())
+        r = self._makeOne(root)
+        self.assertRaises(NotFound, r.traverse, 'folder/objBasic')
+
     def test_traverse_class_without_docstring(self):
         from ZPublisher import NotFound
         root, folder = self._makeRootAndFolder()

Modified: Zope/branches/2.11/setup.py
===================================================================
--- Zope/branches/2.11/setup.py	2011-02-06 13:27:13 UTC (rev 120125)
+++ Zope/branches/2.11/setup.py	2011-02-06 13:27:36 UTC (rev 120126)
@@ -477,7 +477,7 @@
 setup(name='Zope',
       author='Zope Foundation and Contributors',
       license='ZPL 2.1',
-      version="2.11.2",
+      version="2.11.8",
       maintainer="Zope Foundation",
       maintainer_email="zope-dev at zope.org",
       url = "http://www.zope.org/",



More information about the Zope-Checkins mailing list