Robert Brewer committed 800ebb8

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

Comments (0)

Files changed (3)


 """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[''] = True


     def testCookies(self):
-        import sys
         if sys.version_info >= (2, 5):
                          [('Cookie', 'First=Dinsdale;')])


 """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.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
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.