Files
loustique-home/venv/lib/python3.11/site-packages/flask/__pycache__/testing.cpython-311.pyc

133 lines
14 KiB
Plaintext
Raw Normal View History

2026-03-21 10:53:02 +01:00
<EFBFBD>
<00><><EFBFBD>i<EFBFBD>'<00><01>T<00>ddlmZddlZddlZddlmZddlmZddl m Z ddl
m Z ddl m Z ddlZddlmZdd lmZdd
lmZdd lmZd d lmZd dlmZejrddlmZddlmZd dlm Z Gd<12>dej!j"<00><00>Z"da#dd<17>Z$Gd<18>de<13><00>Z%Gd<1A>de<11><00>Z&dS)<1D>)<01> annotationsN)<01>contextmanager)<01> ExitStack)<01>copy)<01> TracebackType)<01>urlsplit)<01> CliRunner)<01>Result)<01>Client)<01>Request<73>)<01>
ScriptInfo)<01> SessionMixin)<01>WSGIEnvironment)<01> TestResponse)<01>Flaskc<01>6<00><00>eZdZdZ dd<15>fd<11> Zdd<13>Z<05>xZS)<17>EnvironBuildera<72>An :class:`~werkzeug.test.EnvironBuilder`, that takes defaults from the
application.
:param app: The Flask application to configure the environment from.
:param path: URL path being requested.
:param base_url: Base URL where the app is being served, which
``path`` is relative to. If not given, built from
:data:`PREFERRED_URL_SCHEME`, ``subdomain``,
:data:`SERVER_NAME`, and :data:`APPLICATION_ROOT`.
:param subdomain: Subdomain name to append to :data:`SERVER_NAME`.
:param url_scheme: Scheme to use instead of
:data:`PREFERRED_URL_SCHEME`.
:param json: If given, this is serialized as JSON and passed as
``data``. Also defaults ``content_type`` to
``application/json``.
:param args: other positional arguments passed to
:class:`~werkzeug.test.EnvironBuilder`.
:param kwargs: other keyword arguments passed to
:class:`~werkzeug.test.EnvironBuilder`.
<20>/N<>appr<00>path<74>str<74>base_url<72>
str | None<6E> subdomain<69>
url_scheme<EFBFBD>args<67>t.Any<6E>kwargs<67>return<72>Nonec<01><><00><01>|s|s|r!|dut|p|<05><00>ks
Jd<01><00><00>|<03><>|j<00>d<02><00>pd}|jd} |r|<04>d|<08><00>}|<05> |jd}t|<02><00>}
|
jp|<05>d|
jp|<08>d| <09>d<08><00><00><00>}|
j}|
jr |<02>d |
j<00><00>}||_ t<00><00>j ||g|<06>Ri|<07><01>dS)
Nz8Cannot pass "subdomain" or "url_scheme" with "base_url".<2E> SERVER_NAME<4D> localhost<73>APPLICATION_ROOT<4F>.<2E>PREFERRED_URL_SCHEMEz://r<00>?) <0C>bool<6F>config<69>getr<00>scheme<6D>netloc<6F>lstripr<00>queryr<00>super<65>__init__) <0C>selfrrrrrrr<00> http_host<73>app_root<6F>url<72> __class__s <20><>Y/home/maxime/Documents/loustiques-home/venv/lib/python3.11/site-packages/flask/testing.pyr1zEnvironBuilder.__init__1s`<00><><00><1D>
<EFBFBD> <09>
<EFBFBD>Z<EFBFBD>
<EFBFBD> <14>D<EFBFBD> <20> <11>)<29>)<29>z<EFBFBD> *<2A> *<2A>=+<2B>=+<2B>=+<2B> G<01>=+<2B>=+<2B>=+<2B> <14> <1B><1B>
<EFBFBD><0E><0E>}<7D>5<>5<>D<><1B>I<EFBFBD><1A>z<EFBFBD>"4<>5<>H<EFBFBD><18> 7<>(<28>6<>6<>9<EFBFBD>6<>6<> <09><19>!<21> <20>Z<EFBFBD>(><3E>?<3F>
<EFBFBD><1A>4<EFBFBD>.<2E>.<2E>C<EFBFBD><16>:<3A>+<2B><1A>+<2B>+<2B><03>
<EFBFBD>0G<EFBFBD>i<EFBFBD>+<2B>+<2B><1C>O<EFBFBD>O<EFBFBD>C<EFBFBD>(<28>(<28>+<2B>+<2B> <15><17>8<EFBFBD>D<EFBFBD><12>y<EFBFBD> -<2D><1E>,<2C>,<2C><13><19>,<2C>,<2C><04><16><04><08><18><05><07><07><18><14>x<EFBFBD>9<>$<24>9<>9<>9<>&<26>9<>9<>9<>9<>9<><00>objc <01>2<00>|jjj|fi|<02><01>S)z<>Serialize ``obj`` to a JSON-formatted string.
The serialization will be configured according to the config associated
with this EnvironBuilder's ``app``.
)r<00>json<6F>dumps)r2r9rs r7<00>
json_dumpszEnvironBuilder.json_dumpsXs#<00><00> #<23>t<EFBFBD>x<EFBFBD>}<7D>"<22>3<EFBFBD>1<>1<>&<26>1<>1<>1r8)rNNN)rrrrrrrrrrrrrrr r!)r9rrrr r)<07>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r1r=<00> __classcell__<5F>r6s@r7rrso<00><><00><00><00><00><00><08><08>0<18>#<23> $<24>!%<25> %:<3A>%:<3A>%:<3A>%:<3A>%:<3A>%:<3A>%:<3A>N2<>2<>2<>2<>2<>2<>2<>2r8r<00>r rc<01>\<00>tstj<00>d<01><00>atS)N<>werkzeug)<04>_werkzeug_version<6F> importlib<69>metadata<74>version<6F>r8r7<00>_get_werkzeug_versionrLds*<00><00> <1D>C<01>%<25>.<2E>6<>6<>z<EFBFBD>B<>B<><19> <1C>r8c<01>|<00><00>eZdZUdZded<d"<22>fd <09> Zed#d <0B><04><00>Zd$d<0E>Zd%d<12>Z ddd<14>d&<26>fd<19>Z
d'd<1A>Z d(d!<21>Z <0C>xZ S))<29> FlaskClientaWorks like a regular Werkzeug test client but has knowledge about
Flask's contexts to defer the cleanup of the request context until
the end of a ``with`` block. For general information about how to
use this class refer to :class:`werkzeug.test.Client`.
.. versionchanged:: 0.12
`app.test_client()` includes preset default environment, which can be
set after instantiation of the `app.test_client()` object in
`client.environ_base`.
Basic usage is outlined in the :doc:`/testing` chapter.
r<00> applicationrrrr r!c<01><><00><01>t<00><00>j|i|<02><01>d|_g|_t <00><00>|_ddt <00><00><00><00>d<04>|_dS)NFz 127.0.0.1z Werkzeug/)<02> REMOTE_ADDR<44>HTTP_USER_AGENT)r0r1<00>preserve_context<78> _new_contextsr<00>_context_stackrL<00> environ_base)r2rrr6s <20>r7r1zFlaskClient.__init__}se<00><><00><18><05><07><07><18>$<24>)<29>&<26>)<29>)<29>)<29> %<25><04><1D><><3E><04><1A>'<27>k<EFBFBD>k<EFBFBD><04><1B>&<26>D<>+@<40>+B<>+B<>D<>D<>
<EFBFBD>
<EFBFBD><04><19><19>r8<00>t.Iterator[SessionMixin]c/<01><>K<00>|j<00>td<02><00><00>|j}|j|i|<02><01>}|<00>|jj<00><00>|5|j<00>||j<00><00>}ddd<01><00>n #1swxYwY|<05>td<03><00><00>|V<00>|<03>
<00><00>}|j<00> |<05><00>rdS|5|j<00> |||<06><00>ddd<01><00>n #1swxYwY|<00> |jj<00>d<04><00>d|jj|j<00>d<06><00><00><00>dS)a<>When used in combination with a ``with`` statement this opens a
session transaction. This can be used to modify the session that
the test client uses. Once the ``with`` block is left the session is
stored back.
::
with client.session_transaction() as session:
session['value'] = 42
Internally this is implemented by going through a temporary test
request context and since session handling could depend on
request variables this function accepts the same arguments as
:meth:`~flask.Flask.test_request_context` which are directly
passed through.
Nz>Cookies are disabled. Create a client with 'use_cookies=True'.z'Session backend did not open a session.<2E>:rz
Set-Cookie)<13>_cookies<65> TypeErrorrO<00>test_request_context<78>_add_cookies_to_wsgi<67>request<73>environ<6F>session_interface<63> open_session<6F> RuntimeError<6F>response_class<73>is_null_session<6F> save_session<6F>_update_cookies_from_response<73>host<73> partitionr<00>headers<72>getlist)r2rrr<00>ctx<74>sess<73>resps r7<00>session_transactionzFlaskClient.session_transaction<6F>s<00><00><00><00>( <10>=<3D> <20><1B>P<><0E><0E> <0E><13><1E><03>&<26>c<EFBFBD>&<26><04>7<><06>7<>7<><03> <0C>!<21>!<21>#<23>+<2B>"5<>6<>6<>6<> <10> H<01> H<01><16>(<28>5<>5<>c<EFBFBD>3<EFBFBD>;<3B>G<>G<>D<EFBFBD> H<01> H<01> H<01> H<01> H<01> H<01> H<01> H<01> H<01> H<01> H<01><><EFBFBD><EFBFBD> H<01> H<01> H<01> H<01> <10><<3C><1E>H<>I<>I<> I<><12>
<EFBFBD>
<EFBFBD>
<EFBFBD><12>!<21>!<21>#<23>#<23><04> <0E> <20> 0<> 0<><14> 6<> 6<> <13> <12>F<EFBFBD> <10> @<01> @<01> <0F> !<21> .<2E> .<2E>s<EFBFBD>D<EFBFBD>$<24> ?<3F> ?<3F> ?<3F> @<01> @<01> @<01> @<01> @<01> @<01> @<01> @<01> @<01> @<01> @<01><><EFBFBD><EFBFBD> @<01> @<01> @<01> @<01> <0A>*<2A>*<2A> <0F>K<EFBFBD> <1C> &<26> &<26>s<EFBFBD> +<2B> +<2B>A<EFBFBD> .<2E> <0F>K<EFBFBD> <1C> <10>L<EFBFBD> <20> <20><1C> .<2E> .<2E>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
s$<00>!A;<03>;A?<07>A?<07> C6<03>6C:<07>=C:<07>otherrc<01>H<00>i|j<00>|<01>}|jr|jj|d<|S)Nzwerkzeug.debug.preserve_context)rVrSrT<00>append)r2ro<00>outs r7<00> _copy_environzFlaskClient._copy_environ<6F>s6<00><00>,<2C><14>"<22>,<2C>e<EFBFBD>,<2C><03> <0F> <20> O<01>59<35>5G<35>5N<35>C<EFBFBD>1<> 2<><12>
r8<00>tuple[t.Any, ...]<5D>dict[str, t.Any]<5D> BaseRequestc<01><00>|<00>|<02>di<00><00><00><00>|d<t|jg|<01>Ri|<02><01>} |<03><00><00>|<03><00><00>S#|<03><00><00>wxYw)NrV)rsr+rrO<00> get_request<73>close)r2rr<00>builders r7<00>_request_from_builder_argsz&FlaskClient._request_from_builder_args<67>s<00><00>"&<26>!3<>!3<>F<EFBFBD>J<EFBFBD>J<EFBFBD>~<7E>r<EFBFBD>4R<34>4R<34>!S<>!S<><06>~<7E><1E> <20><14>!1<>C<>D<EFBFBD>C<>C<>C<>F<EFBFBD>C<>C<><07> <1C><1A>&<26>&<26>(<28>(<28> <13>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><4F>G<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><4F><EFBFBD>s <00>A+<00>+BF<><02>buffered<65>follow_redirectsr}r)r~rc<01><><00><01>|<03>rAt|dtjjtt
f<03><00><00>rt|dtjj<00><00>rKt |d<00><00>}|<00>|jpi<00><00>|_|<05> <00><00>}n<>t|dt<00><00>rNt<00>
|d|j |<00>i<00><00><00><02><00><00> <00><00>}nKt |d<00><00>}|<00>|j <00><00>|_ n|<00> ||<04><00>}|j<00><00><00>t!<00><00><00>|||<02><03><00>}|j j|_|jD]}|j<00>|<08><00><00>|j<00><00><00>|S)Nr)rrVr|)<17>
isinstancerF<00>testr<00>dictrvrrsrVrx<00> from_environrOr_r{rUryr0<00>openr;<00> json_modulerT<00> enter_context<78>clear)
r2r}r~rrrzr^<00>response<73>cmr6s
<20>r7r<>zFlaskClient.open<65>s<><00><><00> <10> D<01>J<EFBFBD> <10><11>G<EFBFBD>h<EFBFBD>m<EFBFBD>2<>D<EFBFBD>+<2B>F<>
<EFBFBD>
<EFBFBD> D<01><1A>$<24>q<EFBFBD>'<27>8<EFBFBD>=<3D>#?<3F>@<40>@<40> F<01><1E>t<EFBFBD>A<EFBFBD>w<EFBFBD>-<2D>-<2D><07>'+<2B>'9<>'9<>'<27>:N<>:T<>RT<52>'U<>'U<><07>$<24>!<21>-<2D>-<2D>/<2F>/<2F><07><07><1B>D<EFBFBD><11>G<EFBFBD>T<EFBFBD>*<2A>*<2A> F<01>(<28>5<>5<><18><11>G<EFBFBD><14>!1<><04>@R<>@R<>SU<53>@V<>@V<>6<><12><12><1D>+<2B>-<2D>-<2D><18><07>
<1F>t<EFBFBD>A<EFBFBD>w<EFBFBD>-<2D>-<2D><07>"&<26>"4<>"4<>W<EFBFBD>_<EFBFBD>"E<>"E<><07><0F><0F><1B>5<>5<>d<EFBFBD>F<EFBFBD>C<>C<>G<EFBFBD>
<0A><1B>!<21>!<21>#<23>#<23>#<23><18>7<EFBFBD>7<EFBFBD><<3C><<3C> <13><1D>-<2D> <20>
<EFBFBD>
<EFBFBD><08>
$<24>/<2F>4<><08><1C><17>$<24> 2<> 2<>B<EFBFBD> <10> <1F> -<2D> -<2D>b<EFBFBD> 1<> 1<> 1<> 1<> <0C><1A> <20> <20>"<22>"<22>"<22><17>r8c<01>@<00>|jrtd<01><00><00>d|_|S)NzCannot nest client invocationsT)rSrb<00>r2s r7<00> __enter__zFlaskClient.__enter__<5F>s*<00><00> <0F> <20> A<01><1E>?<3F>@<40>@<40> @<40> $<24><04><1D><13> r8<00>exc_type<70> type | None<6E> exc_value<75>BaseException | None<6E>tb<74>TracebackType | Nonec<01>F<00>d|_|j<00><00><00>dS)NF)rSrUry)r2r<>r<>r<>s r7<00>__exit__zFlaskClient.__exit__<5F>s'<00><00> !&<26><04><1D> <0C><1B>!<21>!<21>#<23>#<23>#<23>#<23>#r8)rrrrr r!)rrrrr rW)rorr r)rrtrrur rv)
rrr}r)r~r)rrr r)r rN)r<>r<>r<>r<>r<>r<>r r!)r>r?r@rA<00>__annotations__r1rrnrsr{r<>r<>r<>rBrCs@r7rNrNms<><00><><00><00><00><00><00><00> <08> <08><17><16><16><16>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><14>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD><14>^<5E>/
<EFBFBD>b<13><13><13><13> <1C> <1C> <1C> <1C><1F>!&<26> +<18>+<18>+<18>+<18>+<18>+<18>+<18>+<18>Z<14><14><14><14> $<24>$<24>$<24>$<24>$<24>$<24>$<24>$r8rNc<01>4<00><00>eZdZdZd<0E>fd<08> Z dd<10>fd <0A> Z<05>xZS)<11>FlaskCliRunnerz<72>A :class:`~click.testing.CliRunner` for testing a Flask app's
CLI commands. Typically created using
:meth:`~flask.Flask.test_cli_runner`. See :ref:`testing-cli`.
rrrrr r!c <01>H<00><01>||_t<00><00>jdi|<02><01>dS)NrK)rr0r1)r2rrr6s <20>r7r1zFlaskCliRunner.__init__s-<00><><00><16><04><08><18><05><07><07><18>"<22>"<22>6<EFBFBD>"<22>"<22>"<22>"<22>"r8N<>clirr
c <01><><00><01><00>|<01> <0C>jj}d|vrt<00>fd<03><08><04><00>|d<t<00><00>j||fi|<03><01>S)acInvokes a CLI command in an isolated environment. See
:meth:`CliRunner.invoke <click.testing.CliRunner.invoke>` for
full method documentation. See :ref:`testing-cli` for examples.
If the ``obj`` argument is not given, passes an instance of
:class:`~flask.cli.ScriptInfo` that knows how to load the Flask
app being tested.
:param cli: Command object to invoke. Default is the app's
:attr:`~flask.app.Flask.cli` group.
:param args: List of strings to invoke the command with.
:return: a :class:`~click.testing.Result` object.
Nr9c<01><00><01><00>jS)N)rr<>s<00>r7<00><lambda>z'FlaskCliRunner.invoke.<locals>.<lambda>(s <00><><00>$<24>(<28>r8)<01>
create_app)rr<>rr0<00>invoke)r2r<>rrr6s` <20>r7r<>zFlaskCliRunner.invokes]<00><><EFBFBD><00>" <0F>;<3B><16>(<28>,<2C>C<EFBFBD> <10><06> <1E> <1E>&<26>2B<32>2B<32>2B<32>2B<32>C<>C<>C<>F<EFBFBD>5<EFBFBD>M<EFBFBD><1D>u<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>c<EFBFBD>4<EFBFBD>2<>2<>6<EFBFBD>2<>2<>2r8)rrrrr r!)NN)r<>rrrrrr r
)r>r?r@rAr1r<>rBrCs@r7r<>r<> so<00><><00><00><00><00><00><08><08>
#<23>#<23>#<23>#<23>#<23>#<23>
04<30>3<>3<>3<>3<>3<>3<>3<>3<>3<>3<>3r8r<>)r r)'<27>
__future__r<00>importlib.metadatarH<00>typing<6E>t<>
contextlibrrr<00>typesr<00> urllib.parser<00> werkzeug.testrF<00> click.testingr r
r <00>werkzeug.wrappersr rvr<>r<00>sessionsr<00> TYPE_CHECKING<4E>_typeshed.wsgirrrrr<>rrGrLrNr<>rKr8r7<00><module>r<>s<><00><01>"<22>"<22>"<22>"<22>"<22>"<22><19><19><19><19><12><12><12><12>%<25>%<25>%<25>%<25>%<25>%<25> <20> <20> <20> <20> <20> <20><15><15><15><15><15><15><1F><1F><1F><1F><1F><1F>!<21>!<21>!<21>!<21>!<21>!<21><14><14><14><14>#<23>#<23>#<23>#<23>#<23>#<23> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>4<>4<>4<>4<>4<>4<><1B><1B><1B><1B><1B><1B>"<22>"<22>"<22>"<22>"<22>"<22><04>?<3F><1B>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A><1A><1A><1A><1A><1A><1A>C2<>C2<>C2<>C2<>C2<>X<EFBFBD>]<5D>1<>C2<>C2<>C2<>L<17><11><1D><1D><1D><1D>Y$<24>Y$<24>Y$<24>Y$<24>Y$<24>&<26>Y$<24>Y$<24>Y$<24>x!3<>!3<>!3<>!3<>!3<>Y<EFBFBD>!3<>!3<>!3<>!3<>!3r8