[Repoze-checkins] r1044 - in repoze.zope2/trunk: . repoze/zope2 repoze/zope2/tests

Chris McDonough chrism at agendaless.com
Wed May 21 16:08:24 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Wed May 21 16:08:23 2008
New Revision: 1044

Log:
  - Fix a not-true-enough emulation of Zope 2.9 publishing semantics.
    Symptom: Z3 "adding" views being published without an acquisition
    wrapper under Zope 2.9.



Modified:
   repoze.zope2/trunk/CHANGES.txt
   repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py
   repoze.zope2/trunk/repoze/zope2/z2bob.py

Modified: repoze.zope2/trunk/CHANGES.txt
==============================================================================
--- repoze.zope2/trunk/CHANGES.txt	(original)
+++ repoze.zope2/trunk/CHANGES.txt	Wed May 21 16:08:23 2008
@@ -1,10 +1,14 @@
-After 0.3.9
+0.4.0 (2008-05-21)
 
   - Raise an error Z2BobHelper's map_result method detects that it's
     about to return a value to obob which does not have an __iter__
     method.  This avoids confusion about what's causing failures when
     we attempt to publish an "unpublishable" object.
 
+  - Fix a not-true-enough emulation of Zope 2.9 publishing semantics.
+    Symptom: Z3 "adding" views being published without an acquisition
+    wrapper under Zope 2.9.
+
 0.3.9 (2008-05-08)
 
   - Instance creation now expands the sandbox path in derived files

Modified: repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py
==============================================================================
--- repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py	(original)
+++ repoze.zope2/trunk/repoze/zope2/tests/test_z2bob.py	Wed May 21 16:08:23 2008
@@ -590,10 +590,14 @@
         helper.user_folders = []
         helper.request.steps = []
         helper.traverse(published, 'foo')
-        self.assertEqual(len(x), 1)
-        xrequest, xname = x[0]
-        self.assertEqual(xrequest, helper.request)
-        self.assertEqual(xname, 'foo')
+        from repoze.zope2.publishtraverse import _BETTER_THAN_210
+        if _BETTER_THAN_210: # 2.10 semantics return the published ob
+            self.assertEqual(len(x), 1)
+            xrequest, xname = x[0]
+            self.assertEqual(xrequest, helper.request)
+            self.assertEqual(xname, 'foo')
+        else:
+            self.assertEqual(len(x), 0)
         
     def test_before_invoke_browser_default_redirects(self):
         published = DummyPublishedObject()

Modified: repoze.zope2/trunk/repoze/zope2/z2bob.py
==============================================================================
--- repoze.zope2/trunk/repoze/zope2/z2bob.py	(original)
+++ repoze.zope2/trunk/repoze/zope2/z2bob.py	Wed May 21 16:08:23 2008
@@ -84,6 +84,7 @@
 from repoze.zope2.mapply import dont_publish_class
 from repoze.zope2.mapply import missing_name
 from repoze.zope2.publishtraverse import DefaultPublishTraverse
+from repoze.zope2.publishtraverse import _BETTER_THAN_210
 from repoze.zope2.request import makeRequest
 from repoze.zope2.db import getDB
 
@@ -565,7 +566,7 @@
 
     def _getPublishTraverseView(self, iface, ob):
         request = self.request
-        if iface.providedBy(ob):
+        if _BETTER_THAN_210 and iface.providedBy(ob):
             adapter = ob
         else:
             adapter = queryMultiAdapter((ob, request), iface)


More information about the Repoze-checkins mailing list