Last active
December 11, 2015 23:08
-
-
Save alfredodeza/4674495 to your computer and use it in GitHub Desktop.
Trying to demonstrate a bug where the WSGI environ gets polluted with Routes + Cherrypy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
curdir = os.path.join(os.getcwd(), os.path.dirname(__file__)) | |
import cherrypy | |
from cherrypy.test import helper | |
class RoutesDispatchTest(helper.CPWebCase): | |
def setup_server(): | |
class Foo: | |
def index(self): | |
return "Hello from Foo" | |
class Bar: | |
def index(self): | |
return "Hello from Bar" | |
d = cherrypy.dispatch.RoutesDispatcher() | |
d.mapper.explicit = False | |
d.mapper.minimization = True | |
d.connect('foo', '/server/foo', Foo()) | |
d.connect('bar', '/server/bar', Bar()) | |
d.connect('root_bar', '/', Bar()) | |
d.connect('root_meh', '/meh', Bar()) | |
conf = {'/': {'request.dispatch': d}, | |
'global': {'script_name': '/preview'}} | |
cherrypy.tree.mount(None, '/preview', conf) | |
setup_server = staticmethod(setup_server) | |
def test_Routes_Dispatch(self): | |
self.getPage("/preview/server/foo") | |
self.assertStatus("200 OK") | |
self.assertBody("Hello from Foo") | |
self.getPage("/preview/server/bar") | |
self.assertStatus("200 OK") | |
self.assertBody("Hello from Bar") | |
self.getPage("/preview/") | |
self.assertStatus("200 OK") | |
self.assertBody("Hello from Bar") | |
self.getPage("/preview/meh") | |
self.assertStatus("200 OK") | |
self.assertBody("Hello from Bar") | |
# uncomment below to get a 500 | |
# because the lack of a trailing slash | |
# makes environ['PATH_INFO'] be '' | |
#self.getPage("/preview") | |
#self.assertStatus("200 OK") | |
#self.assertBody("Hello from Bar") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment