fix issue 3396
This commit is contained in:
parent
3261a9451a
commit
d7fd4f322e
2 changed files with 16 additions and 5 deletions
|
|
@ -21,7 +21,8 @@ Unreleased
|
||||||
:issue:`4096`
|
:issue:`4096`
|
||||||
- The CLI loader handles ``**kwargs`` in a ``create_app`` function.
|
- The CLI loader handles ``**kwargs`` in a ``create_app`` function.
|
||||||
:issue:`4170`
|
:issue:`4170`
|
||||||
|
- Fix ``Unable to extend FlaskClient with follow_redirects`` issue.
|
||||||
|
:issue:`3396`
|
||||||
|
|
||||||
Version 2.0.1
|
Version 2.0.1
|
||||||
-------------
|
-------------
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ class FlaskClient(Client):
|
||||||
|
|
||||||
application: "Flask"
|
application: "Flask"
|
||||||
preserve_context = False
|
preserve_context = False
|
||||||
|
ex_builder = None
|
||||||
|
|
||||||
def __init__(self, *args: t.Any, **kwargs: t.Any) -> None:
|
def __init__(self, *args: t.Any, **kwargs: t.Any) -> None:
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
@ -189,9 +190,9 @@ class FlaskClient(Client):
|
||||||
"flask._preserve_context": self.preserve_context,
|
"flask._preserve_context": self.preserve_context,
|
||||||
}
|
}
|
||||||
|
|
||||||
if not kwargs and len(args) == 1:
|
arg = args[0]
|
||||||
arg = args[0]
|
|
||||||
|
|
||||||
|
if not kwargs and len(args) == 1:
|
||||||
if isinstance(arg, werkzeug.test.EnvironBuilder):
|
if isinstance(arg, werkzeug.test.EnvironBuilder):
|
||||||
builder = copy(arg)
|
builder = copy(arg)
|
||||||
builder.environ_base = copy_environ(builder.environ_base or {})
|
builder.environ_base = copy_environ(builder.environ_base or {})
|
||||||
|
|
@ -204,9 +205,18 @@ class FlaskClient(Client):
|
||||||
request = copy(arg)
|
request = copy(arg)
|
||||||
request.environ = copy_environ(request.environ)
|
request.environ = copy_environ(request.environ)
|
||||||
|
|
||||||
|
if isinstance(arg, werkzeug.test.EnvironBuilder):
|
||||||
|
builder = copy(arg)
|
||||||
|
builder.environ_base = copy_environ(builder.environ_base or {})
|
||||||
|
request = builder.get_request()
|
||||||
|
|
||||||
if request is None:
|
if request is None:
|
||||||
kwargs["environ_base"] = copy_environ(kwargs.get("environ_base", {}))
|
if self.ex_builder is None:
|
||||||
builder = EnvironBuilder(self.application, *args, **kwargs)
|
kwargs["environ_base"] = copy_environ(kwargs.get("environ_base", {}))
|
||||||
|
builder = EnvironBuilder(self.application, *args, **kwargs)
|
||||||
|
self.ex_builder = builder
|
||||||
|
else:
|
||||||
|
builder = self.ex_builder
|
||||||
|
|
||||||
try:
|
try:
|
||||||
request = builder.get_request()
|
request = builder.get_request()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue