def do_test(handler, path, result): environment = {'PATH_INFO': path + '/'} handler = pyroutes.route(path)(handler) response = pyroutes.__dispatcher__.dispatch(environment, ArgKeep) self.assertTrue(isinstance(handler, Route)) self.assertEquals(response, [result]) self.assertEquals(args_given, [('200 OK', [('Content-Type', 'text/html; charset=utf-8')]), {}])
def test_middleware_chainer(self): handler = lambda x: 'result' request = Request({}) self.assertEquals(settings.MIDDLEWARE, ('pyroutes.middleware.errors.NotFoundMiddleware', 'pyroutes.middleware.errors.ErrorHandlerMiddleware')) handler = pyroutes.route('/path')(handler) result = pyroutes.dispatcher.create_middleware_chain(handler, request) self.assertTrue(isinstance(handler, Route)) self.assertEquals(result, 'result')
def test_middleware_chainer(self): handler = lambda x: 'result' request = Request({'PATH_INFO': '/path/'}) self.assertEquals(settings.MIDDLEWARE, ('pyroutes.middleware.errors.NotFoundMiddleware', 'pyroutes.middleware.responsify.Responsify', 'pyroutes.middleware.errors.ErrorHandlerMiddleware')) handler = pyroutes.route('/path')(handler) result = pyroutes.__dispatcher__.create_middleware_chain(handler, request) self.assertTrue(isinstance(handler, Route)) self.assertTrue(isinstance(result, Response))
except KeyError: raise Http403({'#details': 'Key did not match file'}) @route('/cookie-set') def set_cookies(request, message='Hi!'): response = Response('Cookies set!') response.cookies.add_cookie('logged_in', 'true') # Insecure cookie setting response.cookies.add_unsigned_cookie('message', message) return response @route('/cookie-get') def get_cookies(request): logged_in = request.COOKIES.get_cookie('logged_in') message = request.COOKIES.get_unsigned_cookie('message') if logged_in: return message raise Http403({'#details': 'Go away!'}) @route('/cookie-del') def get_cookies(request): response = Response('Cookies deleted!') response.cookies.del_cookie('logged_in') response.cookies.del_cookie('message') return response if __name__ == '__main__': from pyroutes import utils route('/media')(utils.fileserver) utils.devserver(application)
if 'new_node_data' in request.POST: nodes[node] = request.POST['new_node_data'] return Redirect('/show/%s' % node) template_data = { # XML-Template will remove the textarea node if None '#edit_contents': nodes.get(node) or '', '#edit_form/action': '/edit/%s' % node, } return Response(renderer.render("templates/edit.xml", template_data), status_code="404 Not Found") @route('/show') def show(request, node): node_contents = nodes.get(node) if node_contents is None: return Redirect("/edit/%s" % node) template_data = { '#view_contents': node_contents, '#edit_link/href': '/edit/%s' % node } return Response(renderer.render("templates/show.xml", template_data)) if __name__ == '__main__': route('/media')(utils.fileserver) utils.devserver(application)