Esempio n. 1
0
 def wrapper(*args, **kwargs):
     resp = f(*args, **kwargs)
     if isinstance(resp, tuple):
         data, code, headers = unpack(resp)
         return (self.wrap_response_with_data(data,
                                              code), code, headers)
     else:
         return self.wrap_response_with_data(resp)
Esempio n. 2
0
        def cache_func(*args, **kwargs):

            resp, code, headers = unpack(view(*args, **kwargs))
            now = datetime.datetime.now()

            headers['Last-Modified'] = format_date_time(time.mktime(now.timetuple()))

            failure = code - 200 >= 100  # this is not a successful answer
            do_not_cache = getattr(g, 'DONOTCACHE', False)

            if expires is None or failure or do_not_cache:
                headers['Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0'
            else:
                headers['Cache-Control'] = 'private, max-age={}'.format(expires)

            return resp, code, headers
Esempio n. 3
0
            def dump_wrapper(*args, **kwargs):
                # pylint: disable=missing-docstring
                response = func(*args, **kwargs)
                extra_headers = None

                if response is None:
                    if model is not None:
                        raise ValueError(
                            "Response cannot not be None with HTTP status %d" %
                            code)
                    return flask.Response(status=code)
                elif isinstance(response, flask.Response) or model is None:
                    return response
                elif isinstance(response, tuple):
                    response, _code, extra_headers = unpack(response)
                else:
                    _code = code

                if HTTPStatus(_code) is code:
                    response = model.dump(response).data
                return response, _code, extra_headers
Esempio n. 4
0
 def test_single_value(self):
     data, code, headers = utils.unpack('test')
     assert data == 'test'
     assert code == 200
     assert headers == {}
Esempio n. 5
0
 def test_too_many_values(self):
     with pytest.raises(ValueError):
         utils.unpack((None, None, None, None))
Esempio n. 6
0
 def test_value_headers_default_code(self):
     data, code, headers = utils.unpack(('test', None, {'Header': 'value'}))
     assert data == 'test'
     assert code == 200
     assert headers == {'Header': 'value'}
Esempio n. 7
0
 def test_value_code_headers(self):
     data, code, headers = utils.unpack(('test', 201, {'Header': 'value'}))
     assert data == 'test'
     assert code == 201
     assert headers == {'Header': 'value'}
Esempio n. 8
0
 def test_value_code(self):
     data, code, headers = utils.unpack(('test', 201))
     assert data == 'test'
     assert code == 201
     assert headers == {}
Esempio n. 9
0
 def test_single_value_with_default_code(self):
     data, code, headers = utils.unpack('test', 500)
     assert data == 'test'
     assert code == 500
     assert headers == {}
Esempio n. 10
0
 def test_single_value(self):
     data, code, headers = utils.unpack("test")
     assert data == "test"
     assert code == 200
     assert headers == {}
Esempio n. 11
0
 def test_value_headers_default_code(self):
     data, code, headers = utils.unpack(("test", None, {"Header": "value"}))
     assert data == "test"
     assert code == 200
     assert headers == {"Header": "value"}
Esempio n. 12
0
 def test_value_code_headers(self):
     data, code, headers = utils.unpack(("test", 201, {"Header": "value"}))
     assert data == "test"
     assert code == 201
     assert headers == {"Header": "value"}