Exemple #1
0
    def _wz(self):
        body, mimetype, headers = self.body
        headers.update(self.headers)

        r = WerkzeugResponse(
            body,
            status=self.status_code,
            mimetype=self.mimetype or mimetype,
            direct_passthrough=False,
        )
        r.headers = headers
        return r
Exemple #2
0
    def _wz(self):
        body, headers = self.body
        if len(self.body) > 500:
            body, headers = self.gzipped_body
        if self.headers:
            headers.update(self.headers)

        r = WerkzeugResponse(body,
                             status=self.status_code,
                             direct_passthrough=False)
        r.headers = headers
        return r
Exemple #3
0
    :param httprequest:  An instance of openerp.http.HttpRequest
    :param result: The result to return to the client from openerp.http.route
    :param explicit_session: optional openerp.http.Session
    :return : Returns the result response with a cookie that expires in x hours
    """
    if isinstance(result, Response) and result.is_qweb:
        try:
            result.flatten()
        except (Exception), e:
            if request.db:
                result = request.registry['ir.http']._handle_exception(e)
            else:
                raise

    if isinstance(result, basestring):
        response = WerkzeugResponse(result, mimetype='text/html')
    else:
        response = result

    if httprequest.session.should_save:
        self.session_store.save(httprequest.session)

    cookie_lifespan = 3600 * 12  # 12 hours, maybe set in config?

    if response.response and not \
            isinstance(response, exceptions.HTTPException):
        response.set_cookie('session_id',
                            httprequest.session.sid,
                            max_age=cookie_lifespan)
    return response
Exemple #4
0
 async def werkzeug() -> ResponseReturnValue:
     return WerkzeugResponse(b"Hello")
Exemple #5
0
        (None, None, True),
        ((None, 201), None, True),
        (TEST_RESPONSE, TEST_RESPONSE, False),
        (("hello", {
            "X-Header": "bob"
        }), Response("hello", headers={"X-Header": "bob"}), False),
        (("hello", 201), Response("hello", 201), False),
        (
            ("hello", 201, {
                "X-Header": "bob"
            }),
            Response("hello", 201, headers={"X-Header": "bob"}),
            False,
        ),
        (
            (WerkzeugResponse("hello"), 201, {
                "X-Header": "bob"
            }),
            WerkzeugResponse("hello", 201, {"X-Header": "bob"}),
            False,
        ),
        (InternalServerError(), InternalServerError().get_response(), False),
        ((val for val in "abcd"), Response((val for val in "abcd")), False),
        (int, None, True),
    ],
)
async def test_make_response(result: ResponseReturnValue,
                             expected: Union[Response, WerkzeugResponse],
                             raises: bool) -> None:
    app = Quart(__name__)
    app.config["RESPONSE_TIMEOUT"] = None