Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
 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)
Beispiel #5
0
 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'
Beispiel #6
0
 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'
Beispiel #7
0
 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