[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