def setUp(self): super(Function_fetch_Tests, self).setUp() self.http_client = WrappedClient()
class Function_fetch_Tests(AsyncHTTPTestCase): def setUp(self): super(Function_fetch_Tests, self).setUp() self.http_client = WrappedClient() def get_app(self): return Application([(r"/.*", Handler)]) @gen_test def test_no_preflight_needed(self): request = HTTPRequest(url=self.get_url( "/" "?header=Access-Control-Allow-Origin:*"), headers={ "Host": "localhost", "Origin": self.get_url("/") }) response = yield self.http_client.fetch(request) self.assertIsInstance(response.headers, utils.ProtectedHTTPHeaders) @gen_test def test_preflight_request_failed(self): request = HTTPRequest(url=self.get_url( "/" "?header=Access-Control-Allow-Origin:*" "&error=true"), headers={ "Content-Type": "application/json", "Host": "foo", "Origin": "foo", "foobar": "baz" }, method="POST", body="") with self.assertRaises(errors.AccessControlError) as context: yield self.http_client.fetch(request) self.assertEqual(str(context.exception), "Pre-flight check failed") @gen_test def test_preflight_checks_fail(self): request = HTTPRequest(url=self.get_url( "/" "?header=Access-Control-Allow-Headers:Bar" "&header=Access-Control-Allow-Origin:*"), headers={ "foo": "bar", "Bar": "baz", "Host": "foo", "Origin": "foo" }) with self.assertRaises(errors.AccessControlError) as context: yield self.http_client.fetch(request) self.assertRegexpMatches(str(context.exception), "Headers .*'foo'.* not allowed") @gen_test def test_successful_request(self): request = HTTPRequest(self.get_url( "/" "?header=Access-Control-Allow-Origin:*" "&header=Access-Control-Allow-Method:POST"), method="POST", body="foo", headers={ "Origin": "foo", "Host": "foobar" }) response = yield self.http_client.fetch(request) self.assertEqual(response.code, 200) @gen_test def test_send_with_expected_server_error(self): self.http_client.skip_checks_on_server_error = True request = HTTPRequest( self.get_url("/?header=Access-Control-Allow-Origin:*&error=true"), method="HEAD", headers={ "Host": "localhost", "Origin": self.get_url("") }) response = yield self.http_client.fetch(request, raise_error=False) self.assertEqual(response.code, 502)
class Function_fetch_Tests(AsyncHTTPTestCase): def setUp(self): super(Function_fetch_Tests, self).setUp() self.http_client = WrappedClient() def get_app(self): return Application([ (r"/.*", Handler) ]) @gen_test def test_no_preflight_needed(self): request = HTTPRequest( url=self.get_url( "/" "?header=Access-Control-Allow-Origin:*" ), headers={ "Host": "localhost", "Origin": self.get_url("/") }) response = yield self.http_client.fetch(request) self.assertIsInstance(response.headers, utils.ProtectedHTTPHeaders) @gen_test def test_preflight_request_failed(self): request = HTTPRequest( url=self.get_url( "/" "?header=Access-Control-Allow-Origin:*" "&error=true" ), headers={ "Content-Type": "application/json", "Host": "foo", "Origin": "foo", "foobar": "baz" }, method="POST", body="") with self.assertRaises(errors.AccessControlError) as context: yield self.http_client.fetch(request) self.assertEqual(context.exception.message, "Pre-flight check failed") @gen_test def test_preflight_checks_fail(self): request = HTTPRequest( url=self.get_url( "/" "?header=Access-Control-Allow-Headers:Bar" "&header=Access-Control-Allow-Origin:*" ), headers={ "foo": "bar", "Bar": "baz", "Host": "foo", "Origin": "foo" }) with self.assertRaises(errors.AccessControlError) as context: yield self.http_client.fetch(request) self.assertRegexpMatches( context.exception.message, "Headers set(.*'foo'.*) not allowed") @gen_test def test_successful_request(self): request = HTTPRequest( self.get_url( "/" "?header=Access-Control-Allow-Origin:*" "&header=Access-Control-Allow-Method:POST" ), method="POST", body="foo", headers={ "Origin": "foo", "Host": "foobar" } ) response = yield self.http_client.fetch(request) self.assertEqual(response.code, 200) @gen_test def test_send_with_expected_server_error(self): self.http_client.skip_checks_on_server_error = True request = HTTPRequest( self.get_url("/?header=Access-Control-Allow-Origin:*&error=true"), method="HEAD", headers={ "Host": "localhost", "Origin": self.get_url("") }) response = yield self.http_client.fetch(request, raise_error=False) self.assertEqual(response.code, 502)