[Zope-Checkins] SVN: Zope/trunk/ Fix for collector #2261. At least
an ugly temporary fix. This could be cleaned up a
Lennart Regebro
regebro at gmail.com
Mon Jan 15 10:01:56 EST 2007
Log message for revision 72040:
Fix for collector #2261. At least an ugly temporary fix. This could be cleaned up a
lot, but even better, we should take further steps towards using the z3 publisher.
Changed:
U Zope/trunk/doc/CHANGES.txt
U Zope/trunk/lib/python/ZPublisher/BaseRequest.py
U Zope/trunk/lib/python/webdav/tests/testPUT_factory.py
-=-
Modified: Zope/trunk/doc/CHANGES.txt
===================================================================
--- Zope/trunk/doc/CHANGES.txt 2007-01-15 11:58:02 UTC (rev 72039)
+++ Zope/trunk/doc/CHANGES.txt 2007-01-15 15:01:56 UTC (rev 72040)
@@ -72,6 +72,7 @@
interfaces.py)
Bugs Fixed
+ - Collector #2261: Acquisition when creating objects via Webdav.
- Collector #2263: 'field2ulines' did not convert empty string
correctly.
Modified: Zope/trunk/lib/python/ZPublisher/BaseRequest.py
===================================================================
--- Zope/trunk/lib/python/ZPublisher/BaseRequest.py 2007-01-15 11:58:02 UTC (rev 72039)
+++ Zope/trunk/lib/python/ZPublisher/BaseRequest.py 2007-01-15 15:01:56 UTC (rev 72040)
@@ -427,6 +427,17 @@
# BrowserDefault returns the object to be published
# (usually self) and a sequence of names to traverse to
# find the method to be published.
+
+ # This is webdav support. The last object in the path
+ # should not be acquired. Instead, a NullResource should
+ # be given if it doesn't exist:
+ if (no_acquire_flag and
+ hasattr(object, 'aq_base') and
+ not hasattr(object,'__bobo_traverse__')):
+ if object.aq_parent is not object.aq_inner.aq_parent:
+ from webdav.NullResource import NullResource
+ object = NullResource(parents[-2], object.getId(), self).__of__(parents[-2])
+
if IBrowserPublisher.providedBy(object):
adapter = object
else:
Modified: Zope/trunk/lib/python/webdav/tests/testPUT_factory.py
===================================================================
--- Zope/trunk/lib/python/webdav/tests/testPUT_factory.py 2007-01-15 11:58:02 UTC (rev 72039)
+++ Zope/trunk/lib/python/webdav/tests/testPUT_factory.py 2007-01-15 15:01:56 UTC (rev 72040)
@@ -80,7 +80,7 @@
put = request.traverse('/A/B/a')
put(request, request.RESPONSE)
# PUT should no acquire A.a
- self.assertEqual(str(self.app.A.a), 'I am file a', 'PUT factory not should acquire content')
+ self.assertEqual(str(self.app.A.a), 'I am file a', 'PUT factory should not acquire content')
# check for the newly created file
self.assertEqual(str(self.app.A.B.a), 'bar')
More information about the Zope-Checkins
mailing list