Exemple #1
0
        class InternalRedirect(Test):
            def index(self):
                raise cherrypy.InternalRedirect("/")

            def choke(self):
                return 3 / 0

            choke.exposed = True
            choke._cp_config = {'hooks.before_error_response': redir_custom}

            def relative(self, a, b):
                raise cherrypy.InternalRedirect("cousin?t=6")

            def cousin(self, t):
                assert cherrypy.request.prev.closed
                return cherrypy.request.prev.query_string

            def petshop(self, user_id):
                if user_id == "parrot":
                    # Trade it for a slug when redirecting
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=slug')
                elif user_id == "terrier":
                    # Trade it for a fish when redirecting
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=fish')
                else:
                    # This should pass the user_id through to getImagesByUser
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=%s' % str(user_id))

            # We support Python 2.3, but the @-deco syntax would look like
            # this:
            # @tools.login_redir()
            def secure(self):
                return "Welcome!"

            secure = tools.login_redir()(secure)

            # Since calling the tool returns the same function you pass in,
            # you could skip binding the return value, and just write:
            # tools.login_redir()(secure)

            def login(self):
                return "Please log in"

            def custom_err(self):
                return "Something went horribly wrong."

            def early_ir(self, arg):
                return "whatever"

            early_ir._cp_config = {'hooks.before_request_body': redir_custom}
Exemple #2
0
        class InternalRedirect(Test):
            def index(self):
                raise cherrypy.InternalRedirect('/')

            def choke(self):
                return 3 / 0

            choke.exposed = True
            choke._cp_config = {'hooks.before_error_response': redir_custom}

            def relative(self, a, b):
                raise cherrypy.InternalRedirect('cousin?t=6')

            def cousin(self, t):
                return cherrypy.request.prev.query_string

            def petshop(self, user_id):
                if user_id == 'parrot':
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=slug')
                elif user_id == 'terrier':
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=fish')
                else:
                    raise cherrypy.InternalRedirect(
                        '/image/getImagesByUser?user_id=%s' % str(user_id))

            def secure(self):
                return 'Welcome!'

            secure = tools.login_redir()(secure)

            def login(self):
                return 'Please log in'

            def custom_err(self):
                return 'Something went horribly wrong.'

            def early_ir(self, arg):
                return 'whatever'

            early_ir._cp_config = {'hooks.before_request_body': redir_custom}