def serve_file_handle(fh, file_path, file_size=None): resp = Response(fh) resp.direct_passthrough = True if file_size is not None: resp.headers['Content-Length'] = file_size content_type, _ = mimetypes.guess_type(file_path) if content_type is not None: resp.headers['Content-Type'] = content_type resp.freeze() return resp
def serve_file(file_name: str, content: str) -> Response: content_type, _ = mimetypes.guess_type(file_name) resp = Response() resp.direct_passthrough = True resp.data = content if content_type is not None: resp.headers['Content-Type'] = content_type resp.freeze() return resp
def serve_file(file_name: str, content: bytes) -> Response: """Construct and cache a Response from a static file.""" content_type, _ = mimetypes.guess_type(file_name) resp = Response() resp.direct_passthrough = True resp.data = content if content_type is not None: resp.headers["Content-Type"] = content_type resp.freeze() return resp
def test_wrapper_internals(): """Test internals of the wrappers""" from werkzeug import Request req = Request.from_values(data={'foo': 'bar'}, method='POST') req._load_form_data() assert req.form.to_dict() == {'foo': 'bar'} # second call does not break req._load_form_data() assert req.form.to_dict() == {'foo': 'bar'} # check reprs assert repr(req) == "<Request 'http://localhost/' [POST]>" resp = Response() assert repr(resp) == '<Response 0 bytes [200 OK]>' resp.data = 'Hello World!' assert repr(resp) == '<Response 12 bytes [200 OK]>' resp.response = iter(['Test']) assert repr(resp) == '<Response streamed [200 OK]>' # unicode data does not set content length response = Response([u'Hällo Wörld']) headers = response.get_wsgi_headers(create_environ()) assert 'Content-Length' not in headers response = Response(['Hällo Wörld']) headers = response.get_wsgi_headers(create_environ()) assert 'Content-Length' in headers # check for internal warnings print 'start' filterwarnings('error', category=Warning) response = Response() environ = create_environ() response.response = 'What the...?' assert_raises(Warning, lambda: list(response.iter_encoded())) assert_raises(Warning, lambda: list(response.get_app_iter(environ))) response.direct_passthrough = True assert_raises(Warning, lambda: list(response.iter_encoded())) assert_raises(Warning, lambda: list(response.get_app_iter(environ))) resetwarnings()