mirror of https://github.com/pallets/flask.git
deprecate as_tuple
This commit is contained in:
parent
a2258dd05d
commit
564bb27efa
11
CHANGES.rst
11
CHANGES.rst
|
@ -1,5 +1,16 @@
|
||||||
.. currentmodule:: flask
|
.. currentmodule:: flask
|
||||||
|
|
||||||
|
Version 2.0.3
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Unreleased
|
||||||
|
|
||||||
|
- The test client's ``as_tuple`` parameter is deprecated and will be
|
||||||
|
removed in Werkzeug 2.1. It is now also deprecated in Flask, to be
|
||||||
|
removed in Flask 2.1, while remaining compatible with both in
|
||||||
|
2.0.x. Use ``response.request.environ`` instead. :pr:`4341`
|
||||||
|
|
||||||
|
|
||||||
Version 2.0.2
|
Version 2.0.2
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
|
@ -9,14 +9,15 @@ from werkzeug.test import Client
|
||||||
from werkzeug.urls import url_parse
|
from werkzeug.urls import url_parse
|
||||||
from werkzeug.wrappers import Request as BaseRequest
|
from werkzeug.wrappers import Request as BaseRequest
|
||||||
|
|
||||||
from . import _request_ctx_stack
|
|
||||||
from .cli import ScriptInfo
|
from .cli import ScriptInfo
|
||||||
|
from .globals import _request_ctx_stack
|
||||||
from .json import dumps as json_dumps
|
from .json import dumps as json_dumps
|
||||||
from .sessions import SessionMixin
|
from .sessions import SessionMixin
|
||||||
|
|
||||||
if t.TYPE_CHECKING:
|
if t.TYPE_CHECKING:
|
||||||
|
from werkzeug.test import TestResponse
|
||||||
|
|
||||||
from .app import Flask
|
from .app import Flask
|
||||||
from .wrappers import Response
|
|
||||||
|
|
||||||
|
|
||||||
class EnvironBuilder(werkzeug.test.EnvironBuilder):
|
class EnvironBuilder(werkzeug.test.EnvironBuilder):
|
||||||
|
@ -171,14 +172,15 @@ class FlaskClient(Client):
|
||||||
headers = resp.get_wsgi_headers(c.request.environ)
|
headers = resp.get_wsgi_headers(c.request.environ)
|
||||||
self.cookie_jar.extract_wsgi(c.request.environ, headers)
|
self.cookie_jar.extract_wsgi(c.request.environ, headers)
|
||||||
|
|
||||||
def open( # type: ignore
|
def open(
|
||||||
self,
|
self,
|
||||||
*args: t.Any,
|
*args: t.Any,
|
||||||
as_tuple: bool = False,
|
|
||||||
buffered: bool = False,
|
buffered: bool = False,
|
||||||
follow_redirects: bool = False,
|
follow_redirects: bool = False,
|
||||||
**kwargs: t.Any,
|
**kwargs: t.Any,
|
||||||
) -> "Response":
|
) -> "TestResponse":
|
||||||
|
as_tuple = kwargs.pop("as_tuple", None)
|
||||||
|
|
||||||
# Same logic as super.open, but apply environ_base and preserve_context.
|
# Same logic as super.open, but apply environ_base and preserve_context.
|
||||||
request = None
|
request = None
|
||||||
|
|
||||||
|
@ -213,12 +215,28 @@ class FlaskClient(Client):
|
||||||
finally:
|
finally:
|
||||||
builder.close()
|
builder.close()
|
||||||
|
|
||||||
return super().open( # type: ignore
|
if as_tuple is not None:
|
||||||
request,
|
import warnings
|
||||||
as_tuple=as_tuple,
|
|
||||||
buffered=buffered,
|
warnings.warn(
|
||||||
follow_redirects=follow_redirects,
|
"'as_tuple' is deprecated and will be removed in"
|
||||||
)
|
" Werkzeug 2.1 and Flask 2.1. Use"
|
||||||
|
" 'response.request.environ' instead.",
|
||||||
|
DeprecationWarning,
|
||||||
|
stacklevel=3,
|
||||||
|
)
|
||||||
|
return super().open(
|
||||||
|
request,
|
||||||
|
as_tuple=as_tuple,
|
||||||
|
buffered=buffered,
|
||||||
|
follow_redirects=follow_redirects,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return super().open(
|
||||||
|
request,
|
||||||
|
buffered=buffered,
|
||||||
|
follow_redirects=follow_redirects,
|
||||||
|
)
|
||||||
|
|
||||||
def __enter__(self) -> "FlaskClient":
|
def __enter__(self) -> "FlaskClient":
|
||||||
if self.preserve_context:
|
if self.preserve_context:
|
||||||
|
@ -272,7 +290,7 @@ class FlaskCliRunner(CliRunner):
|
||||||
:return: a :class:`~click.testing.Result` object.
|
:return: a :class:`~click.testing.Result` object.
|
||||||
"""
|
"""
|
||||||
if cli is None:
|
if cli is None:
|
||||||
cli = self.app.cli
|
cli = self.app.cli # type: ignore
|
||||||
|
|
||||||
if "obj" not in kwargs:
|
if "obj" not in kwargs:
|
||||||
kwargs["obj"] = ScriptInfo(create_app=lambda: self.app)
|
kwargs["obj"] = ScriptInfo(create_app=lambda: self.app)
|
||||||
|
|
Loading…
Reference in New Issue