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 # Modify by Henry, response deal if HTTPStatus(_code) is code: if isinstance(response, (int, bool, str, float)): return response, _code, extra_headers try: response = model.dump(response).data #except AttributeError as e: except Exception as e: return response, _code, extra_headers return response, _code, extra_headers
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)
def wrapper(*args, **kwargs): response = method(*args, **kwargs) logger.error(response) if isinstance(response, BaseResponse): data, code, headers = unpack(response) else: data, code, headers = response logger.error(data) data = code_message_data_formatter(**data) return data, code, headers
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())) if expires is None: 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
def wrapper(*args, **kwargs): resp = f(*args, **kwargs) mask = self.mask if has_app_context(): mask_header = current_app.config['RESTPLUS_MASK_HEADER'] mask = request.headers.get(mask_header) or mask if isinstance(resp, tuple): data, code, headers = unpack(resp) return (marshal(data, self.fields, self.envelope, self.skip_none, mask, self.ordered), code, headers) else: return marshal(resp, self.fields, self.envelope, self.skip_none, mask, self.ordered)
def wrapper(*args, **kwargs): resp = f(*args, **kwargs) if not self.strict and (isinstance(resp, Response) or isinstance(resp, FlaskResponse)): return resp mask = self.mask if has_app_context(): mask_header = current_app.config['RESTPLUS_MASK_HEADER'] mask = request.headers.get(mask_header) or mask if isinstance(resp, tuple): data, code, headers = unpack(resp) return marshal(data, self.fields, self.envelope, mask), code, headers else: return marshal(resp, self.fields, self.envelope, mask)
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())) if expires is None: headers[ 'Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0' headers['Expires'] = '-1' else: expires_time = now + datetime.timedelta(seconds=expires) headers['Cache-Control'] = 'public' headers['Expires'] = format_date_time( time.mktime(expires_time.timetuple())) return resp, code, headers
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
def test_single_value(self): data, code, headers = utils.unpack('test') assert data == 'test' assert code == 200 assert headers == {}
def test_value_code(self): data, code, headers = utils.unpack(('test', 201)) assert data == 'test' assert code == 201 assert headers == {}
def test_single_value_with_default_code(self): data, code, headers = utils.unpack('test', 500) self.assertEqual(data, 'test') self.assertEqual(code, 500) self.assertEqual(headers, {})
def test_single_value(self): data, code, headers = utils.unpack('test') self.assertEqual(data, 'test') self.assertEqual(code, 200) self.assertEqual(headers, {})
def test_too_many_values(self): with self.assertRaises(ValueError): utils.unpack((None, None, None, None))
def test_too_many_values(self): with pytest.raises(ValueError): utils.unpack((None, None, None, None))
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'}
def test_single_value_with_default_code(self): data, code, headers = utils.unpack('test', 500) assert data == 'test' assert code == 500 assert headers == {}
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'}
def test_value_headers_default_code(self): data, code, headers = utils.unpack(('test', None, {'Header': 'value'})) self.assertEqual(data, 'test') self.assertEqual(code, 200) self.assertEqual(headers, {'Header': 'value'})
def test_value_code(self): data, code, headers = utils.unpack(('test', 201)) self.assertEqual(data, 'test') self.assertEqual(code, 201) self.assertEqual(headers, {})
def test_value_code_headers(self): data, code, headers = utils.unpack(('test', 201, {'Header': 'value'})) self.assertEqual(data, 'test') self.assertEqual(code, 201) self.assertEqual(headers, {'Header': 'value'})