def application(environ, start_response): # The WSGI server puts content length and type in the environment # even when not provided with the request. Drop them if they are empty. if environ.get('CONTENT_LENGTH') == '': del environ['CONTENT_LENGTH'] if environ.get('CONTENT_TYPE') == '': del environ['CONTENT_TYPE'] wrequest = WerkzeugRequest(environ) data = wrequest.get_data() request = Request( method=wrequest.method, url=wrequest.url, headers=wrequest.headers, data=data, ) prepared = request.prepare() stream = streams.build_output_stream( args, env, prepared, response=None, output_options=args.output_options) streams.write_stream(stream, env.stdout, env.stdout_isatty) # When there is data in the request, give the next one breathing room. if data: print("\n", file=env.stdout) # Make dreams come true. response = Response(headers={'Server': server}) return response(environ, start_response)
def curl(self, method, endpoint, params=None): url = '{scheme}://{host}{endpoint}'.format(scheme=self.SCHEME, host=self.HOST, endpoint=endpoint) params = params or {} session = Session() request = Request(method, url, params=params) request = request.prepare() request.headers.update({ 'X-Application-Key': self.KEY, }) response = session.send(request) return GforceResponse(response)
def test_send(self, mock_session_cls): request = Request('GET', 'http://example.com/', {}) request = request.prepare() response = mock.MagicMock() response.content = b'{}' session = mock.MagicMock() mock_session_cls.return_value = session session.send.return_value = response response = self.client.send(request) self.assertEqual(type(response), BrandStemResponse) session.send.assert_called_once_with(request)
def test_serialize_prepared_request(self): r = Request() r.method = 'GET' r.url = 'http://example.com' r.headers = {'User-Agent': 'betamax/test header'} r.data = {'key': 'value'} p = r.prepare() serialized = util.serialize_prepared_request(p, False) assert serialized is not None assert serialized != {} assert serialized['method'] == 'GET' assert serialized['uri'] == 'http://example.com/' assert serialized['headers'] == { 'Content-Length': ['9'], 'Content-Type': ['application/x-www-form-urlencoded'], 'User-Agent': ['betamax/test header'], } assert serialized['body']['string'] == 'key=value'
def test_serialize_prepared_request(self): r = Request() r.method = "GET" r.url = "http://example.com" r.headers = {"User-Agent": "betamax/test header"} r.data = {"key": "value"} p = r.prepare() serialized = util.serialize_prepared_request(p, False) assert serialized is not None assert serialized != {} assert serialized["method"] == "GET" assert serialized["uri"] == "http://example.com/" assert serialized["headers"] == { "Content-Length": ["9"], "Content-Type": ["application/x-www-form-urlencoded"], "User-Agent": ["betamax/test header"], } assert serialized["body"]["string"] == "key=value"
def get(self, endpoint, page, page_size, params=None): params = params or {} params.update({ 'page': page, 'page_size': page_size, }) url = '{scheme}://{host}/api/v2{endpoint}'.format(scheme=self.SCHEME, host=self.HOST, endpoint=endpoint) request = Request('GET', url, params=params) request = request.prepare() unix_date = self.get_unix_date() signature = self.compute_signature(request.path_url, unix_date) request.headers.update({ 'X-Brandstem-Date': unix_date, 'X-Brandstem-Access-Id': self.access_id, 'X-Brandstem-Signature': signature, }) return request