[Checkins] SVN: zc.resourcelibrary/trunk/src/zc/resourcelibrary/publication.py - Resource libraries that are required during a retried request are now
Christian Zagrodnick
cz at gocept.com
Wed Mar 24 05:14:23 EDT 2010
Log message for revision 110146:
- Resource libraries that are required during a retried request are now
correctly registered and injected to the HTML.
Changed:
U zc.resourcelibrary/trunk/src/zc/resourcelibrary/publication.py
-=-
Modified: zc.resourcelibrary/trunk/src/zc/resourcelibrary/publication.py
===================================================================
--- zc.resourcelibrary/trunk/src/zc/resourcelibrary/publication.py 2010-03-24 09:14:08 UTC (rev 110145)
+++ zc.resourcelibrary/trunk/src/zc/resourcelibrary/publication.py 2010-03-24 09:14:23 UTC (rev 110146)
@@ -36,7 +36,36 @@
self.resource_libraries = response.resource_libraries = []
return response
+ def retry(self):
+ """Returns request object to be used in a retry attempt.
+ In addition to BrowswerRequest's retry() the libraries are copied over
+ to the new request. Otherwise it is not possible to add even new
+ libraries to a retried request.
+
+ >>> import StringIO
+ >>> request = Request(StringIO.StringIO(), {})
+ >>> request.resource_libraries = ['foo']
+ >>> retry_request = request.retry()
+ >>> retry_request is request
+ False
+ >>> request.resource_libraries is retry_request.resource_libraries
+ True
+
+ The assigned libraries are flushed because a new request will define
+ its own set of required librarires.
+
+ >>> request.resource_libraries
+ []
+
+ """
+ request = super(Request, self).retry()
+ if hasattr(self, 'resource_libraries'):
+ request.resource_libraries = self.resource_libraries
+ request.resource_libraries[:] = []
+ return request
+
+
class Response(BrowserResponse):
def retry(self):
More information about the checkins
mailing list