Commits

Robert Brewer committed 800ebb8

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

  • Participants
  • Parent commits 03dfca3

Comments (0)

Files changed (3)

File 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
+
+

File 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;')])

File 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__':