self.get_argument("arg1"), self.get_argument("arg2")))
+class PutHandler(RequestHandler):
+ def put(self):
+ self.write("Put body: ")
+ self.write(self.request.body)
+
+
+class RedirectHandler(RequestHandler):
+ def prepare(self):
+ self.redirect(self.get_argument("url"),
+ status=int(self.get_argument("status", "302")))
+
+
class ChunkHandler(RequestHandler):
def get(self):
self.write("asdf")
return Application([
url("/hello", HelloWorldHandler),
url("/post", PostHandler),
+ url("/put", PutHandler),
+ url("/redirect", RedirectHandler),
url("/chunk", ChunkHandler),
url("/auth", AuthHandler),
url("/countdown/([0-9]+)", CountdownHandler, name="countdown"),
self.assertTrue('must not be empty' in str(context.exception))
+ def test_post_307(self):
+ response = self.fetch("/redirect?status=307&url=/post",
+ method="POST", body=b"arg1=foo&arg2=bar")
+ self.assertEqual(response.body, b"Post arg1: foo, arg2: bar")
+
+ def test_put_307(self):
+ response = self.fetch("/redirect?status=307&url=/put",
+ method="PUT", body=b"hello")
+ response.rethrow()
+ self.assertEqual(response.body, b"Put body: hello")
+
class RequestProxyTest(unittest.TestCase):
def test_request_set(self):