Commits

Robert Brewer committed 800ebb8

Test for #829 (@tools.response.headers doesn't appear to work with response.stream True).

Comments (0)

Files changed (3)

cherrypy/test/py25.py

 """Test module for Python 2.5-specific syntax, like the @-decorator syntax."""
 
-from cherrypy import expose
+from cherrypy import expose, tools
 
 
 class ExposeExamples(object):
         return "Mr. and Mrs. Watson"
 
 
+class ToolExamples(object):
+    
+    @expose
+    @tools.response_headers(headers=[('Content-Type', 'application/data')])
+    def blah(self):
+        yield "blah"
+    # This is here to demonstrate that _cp_config = {...} overwrites
+    # the _cp_config attribute added by the Tool decorator. You have
+    # to write _cp_config[k] = v or _cp_config.update(...) instead.
+    blah._cp_config['response.stream'] = True
+
+

cherrypy/test/test_core.py

         self.assertBody(data)
     
     def testCookies(self):
-        import sys
         if sys.version_info >= (2, 5):
             self.getPage("/cookies/single?name=First",
                          [('Cookie', 'First=Dinsdale;')])

cherrypy/test/test_tools.py

 """Test the various means of instantiating and invoking tools."""
 
-import gzip, StringIO
+import gzip
+import StringIO
+import sys
 import time
 timeout = 0.2
 
     app = cherrypy.tree.mount(root, config=conf)
     app.request_class.namespaces['myauth'] = myauthtools
 
+    if sys.version_info >= (2, 5):
+        from cherrypy.test import py25
+        root.tooldecs = py25.ToolExamples()
+
 
 #                             Client-side code                             #
 
     def testHandlerWrapperTool(self):
         self.getPage("/tarfile")
         self.assertBody("I am a tarfile")
+    
+    def testToolWithConfig(self):
+        if not sys.version_info >= (2, 5):
+            print "skipped (Python 2.5+ only)",
+            return
+        
+        self.getPage('/tooldecs/blah')
+        self.assertHeader('Content-Type', 'application/data')
 
 
 if __name__ == '__main__':
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.