§ }<ˆjÙNã ó`—dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z ddl mZddlmZmZmZmZmZmZmZmZmZddlmZmZddlmZddlmZm Z dd l!m"Z"ddl#Z#dd l$m%Z%m&Z&d d l'm(Z(m)Z)d d l m*Z*d dl+m,Z,d dl-m.Z.d dl/m0Z0d dl1m2Z2m3Z3d dl4m5Z5d dl6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>d dl?m@Z@erddlAmBZBndZBejCdko ejDdkZEejFfdeGdejHdejfd„ZIdeGdeJdejHdejfd„ZKdeJfd„ZLGd„d e ¦«ZMGd!„d"eM¦«ZNGd#„d$eM¦«ZOGd%„d&¦«ZPGd'„d(e¦«ZQd)ed*ed+edefd,„ZRegejSfZTejUejVd-fd.eTd/eWdeejSfd0„¦«ZXejVfd.eTdejSfd1„ZYdJd2ejSd/eWddfd3„ZZdej[fd4„Z\dKd5eeBdej]fd6„Z^ dKe0e2d d ¦«d-de0e0e0e0dd7d8d9œ d:eGd;eGde2d?eWd@edAedBedCedDed5eeBdEeJd2ede:fdF„Z_e0e0fdGedHedefdI„Z`dS)LzUtilities shared by tests.éN)ÚABCÚabstractmethod)Ú TracebackType) Ú TYPE_CHECKINGÚAnyÚCallableÚIteratorÚListÚOptionalÚTypeÚUnionÚcast)ÚIsolatedAsyncioTestCaseÚmock)ÚSignal)Ú CIMultiDictÚCIMultiDictProxy)ÚURL)Ú_RequestContextManagerÚ_WSRequestContextManageré)Ú ClientSessionÚhdrs)ÚAbstractCookieJar)ÚClientResponse)ÚClientWebSocketResponse)Úsentinel)Ú HttpVersionÚRawRequestMessage)ÚStrOrURL)Ú ApplicationÚ AppRunnerÚ BaseRunnerÚRequestÚServerÚ ServerRunnerÚSockSiteÚUrlMappingMatchInfo)Ú_RequestHandler)Ú SSLContextÚposixÚcygwinÚhostÚfamilyÚreturncó$—t|d|¦«S)Nr)Úget_port_socket)r-r.s úf/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/aiohttp/test_utils.pyÚget_unused_port_socketr3=s€õ ˜4  FÑ +Ô +Ð+óÚportcóÖ—tj|tj¦«}tr+| tjtjd¦«| ||f¦«|S)Nr)ÚsocketÚ SOCK_STREAMÚ REUSE_ADDRESSÚ setsockoptÚ SOL_SOCKETÚ SO_REUSEADDRÚbind)r-r5r.Úss r2r1r1CsZ€õ Œ �f�fÔ0Ñ1Ô1€AÝð@ð � Š •VÔ&­Ô(;¸QÑ?Ô?Ð?؇F‚FˆD�$ˆ<ÑÔÐØ €Hr4có —tjtjtj¦«5}| d¦«t t | ¦«d¦«cddd¦«S#1swxYwYdS)z1Return a port that is unused on the current host.)ú 127.0.0.1rrN)r7ÚAF_INETr8r=rÚintÚ getsockname)r>s r2Ú unused_portrDPs§€å Œ•v”~¥vÔ'9Ñ :Ô :ð-¸aØ �ŠÐÑ Ô Ð Ý•C˜Ÿš™œ¨Ô+Ñ,Ô,ð-ð-ð-ð-ñ-ô-ð-ð-ð-ð-ð-ð-øøøð-ð-ð-ð-ð-ð-sªAA9Á9A=ÂA=có—eZdZdZeddddedœdeeefde e j dede e d e d eee ejgejfd ed dfd „Z dde e j d ed dfd„Zed ed efd„¦«Zded efd„Zed e fd„¦«Zed e fd„¦«Zed efd„¦«Zdd„Zdd„Z de e!e"de e"de e#d dfd„Z$dd„Z%de e!e"de e"de e#d dfd„Z&dS) ÚBaseTestServerFNr@)ÚschemeÚloopr-r5Úskip_url_assertsÚsocket_factoryrGrHr-r5rIrJÚkwargsr/c ó„—||_d|_d|_||_||_d|_||_||_||_dS)NF) Ú_loopÚrunnerÚ_rootr-r5Ú_closedrGrIrJ)ÚselfrGrHr-r5rIrJrKs r2Ú__init__zBaseTestServer.__init__ZsK€ðˆŒ Ø,0ˆŒ Ø$(ˆŒ ؈Œ ؈Œ ؈Œ ؈Œ Ø 0ˆÔØ,ˆÔÐÐr4c‹óœK—|jrdS||_| dd¦«|_|jdddi|¤Žƒd{V—†|_|j ¦«ƒd{V—†|jsd|_ tj|j ¦«j }n#t$rd}YnwxYw|dkr tj n tj}| |j |j|¦«}| ¦«dd…\|_ |_t#|j||j¬¦«}| ¦«ƒd{V—†|j}|€J‚|j}|€J‚|d ¦«d |_|jt,ur|jrd } nd } | |_t/|j›d |j ›d |j›�¦«|_dS)NÚsslÚhandler_cancellationTrééé)ÚsockÚ ssl_contextrÚhttpsÚhttpz://ú:©)rNrMÚpopÚ_sslÚ _make_runnerÚsetupr5Ú ipaddressÚ ip_addressr-ÚversionÚ ValueErrorr7ÚAF_INET6rArJrCr'ÚstartÚ_serverÚsocketsrGrrrO) rQrHrKrer.Ú_sockÚsiteÚserverrjrGs r2Ú start_serverzBaseTestServer.start_serverqsèè€ð Œ;ð Ø ˆF؈Œ Ø—J’J˜u dÑ+Ô+ˆŒ Ø-˜DÔ-ÐRÐRÀ4ÐRÈ6ÐRÐRÐRÐRÐRÐRÐRÐRˆŒ ØŒk×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒyð ØˆDŒIð ÝÔ*¨4¬9Ñ5Ô5Ô=ˆGˆGøÝð ð ð ØˆGˆGˆGð øøøà$+¨q¢L L•”�µf´nˆØ×#Ò# D¤I¨t¬y¸&ÑAÔAˆØ$×0Ò0Ñ2Ô2°2°A°2Ô6шŒ �4”9ݘœ ¨%¸T¼YÐGÑGÔGˆØ�jŠj‰lŒlÐÐÐÐÐÐÐØ”ˆØÐ!Ð!Ð!Ø”.ˆØÐ"Ð"Ð"ؘA”J×*Ò*Ñ,Ô,¨QÔ/ˆŒ Ø Œ;�(Ð "Ð "ØŒyð Ø ��à�Ø ˆDŒKݘDœKÐCÐC¨D¬IÐCÐC¸¼ ÐCÐCÑDÔDˆŒ ˆ ˆ sÁ6B B$Â#B$c‹ó K—dS©Nr^©rQrKs r2razBaseTestServer._make_runner’s èè€à ˆr4Úpathcó—|j€J‚t|¦«}|js0| ¦«rJ‚|j |¦«Stt |j¦«t |¦«z¦«Srp)rOrrIÚ is_absoluteÚjoinÚstr)rQrrÚurls r2Úmake_urlzBaseTestServer.make_url–sq€ØŒzÐ%Ð%Ð%Ý�$‰iŒiˆØÔ$ð 4Ø—’Ñ(Ô(Ð (Ð (Ð(Ø”:—?’? 3Ñ'Ô'Ð 'å•s˜4œ:‘”­¨T©¬Ñ2Ñ3Ô3Ð 3r4có—|jduSrp)rN©rQs r2ÚstartedzBaseTestServer.startedŸs€àŒ{ $Ð&Ð&r4có—|jSrp)rPrzs r2ÚclosedzBaseTestServer.closed£ó €àŒ|Ðr4có8—|j}|€J‚|j€J‚|jSrp)rNrm)rQrNs r2ÚhandlerzBaseTestServer.handler§s-€ð”ˆØÐ!Ð!Ð!ØŒ}Ð(Ð(Ð(ØŒ}Ðr4cƒó¨K—|jrF|jsA|j€J‚|j ¦«ƒd{V—†d|_d|_d|_dSdSdS)a`Close all fixtures created by the test client. After that point, the TestClient is no longer usable. This is an idempotent function: running close multiple times will not have any additional effects. close is also run when the object is garbage collected, and on exit when used as a context manager. NT)r{r}rNÚcleanuprOr5rPrzs r2ÚclosezBaseTestServer.close°s|èè€ð Œ<ð  ¤ ð Ø”;Ð*Ð*Ð*Ø”+×%Ò%Ñ'Ô'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð '؈DŒJ؈DŒI؈DŒLˆLˆLð  ð ð ð r4có —td¦«‚©NzUse async with instead©Ú TypeErrorrzs r2Ú __enter__zBaseTestServer.__enter__Ãó€ÝÐ0Ñ1Ô1Ð1r4Úexc_typeÚ exc_valueÚ tracebackcó—dSrpr^©rQrŠr‹rŒs r2Ú__exit__zBaseTestServer.__exit__Æó €ð ˆr4cƒóLK—| |j¬¦«ƒd{V—†|S©N©rH)rnrMrzs r2Ú __aenter__zBaseTestServer.__aenter__Ïs6èè€Ø×Ò T¤ZÐÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0؈ r4cƒó>K—| ¦«ƒd{V—†dSrp©rƒrŽs r2Ú __aexit__zBaseTestServer.__aexit__Óó.èè€ð �jŠj‰lŒlÐÐÐÐÐÐÐÐÐr4rp©r/N)r/rF)'Ú__name__Ú __module__Ú __qualname__Ú__test__rr1r rvÚobjectr ÚasyncioÚAbstractEventLooprBÚboolrr7Ú AddressFamilyrrRrnrr#rar rrxÚpropertyr{r}r%r€rƒrˆr Ú BaseExceptionrr�r”r—r^r4r2rFrFWs¯€€€€€Ø€Hð &.Ø48ØØ"Ø!&ð ð-ð-ð-ð�c˜6�kÔ"ð-ð�wÔ0Ô1ð -ð ð -ð �sŒmð -ðð-ð!Ø �#�vÔ+Ð ,¨f¬mÐ ;ô ð-ðð-ð ð-ð-ð-ð-ð0;?ðEðEؘWÔ6Ô7ðEØJMðEà ðEðEðEðEðBð ¨3ð °:ð ð ð ñ„^ð ð4˜Xð4¨#ð4ð4ð4ð4ðð'˜ð'ð'ð'ñ„Xð'ðð˜ðððñ„Xððð˜ðððñ„Xðð ð ð ð ð&2ð2ð2ð2ð à˜4  Ô.Ô/ð ð˜MÔ*ð ð˜MÔ*ð  ð ð  ð ð ð ðððððà˜4  Ô.Ô/ðð˜MÔ*ðð˜MÔ*ð ð ð ðððððr4rFc ój‡—eZdZedddœdedeeefdedee de f ˆfd „Z de d e fd „Z ˆxZS) Ú TestServerr@N©rGr-r5ÚapprGr-r5rKc óP•—||_t¦«jd|||dœ|¤ŽdS©Nr§r^)r¨ÚsuperrR)rQr¨rGr-r5rKÚ __class__s €r2rRzTestServer.__init__Ýs8ø€ðˆŒØ�‰ŒÔÐG ¨T¸ÐGÐGÀÐGÐGÐGÐGÐGr4r/c‹ó*K—t|jfi|¤ŽSrp)r"r¨rqs r2razTestServer._make_runnerésèè€Ý˜œÐ,Ð, VÐ,Ð,Ð,r4)ršr›rœrr!r rvržr rBrrRr#raÚ __classcell__©r¬s@r2r¦r¦Üs¾ø€€€€€ð &.ØØ"ð Hð Hð Hà ð Hð�c˜6�kÔ"ð Hð ð Hð �sŒmð Hðð Hð Hð Hð Hð Hð Hð-¨3ð-°:ð-ð-ð-ð-ð-ð-ð-ð-r4r¦c ót‡—eZdZedddœdedeeefdedee de d df ˆfd „Z dd e de d e fd „ZˆxZS)Ú RawTestServerr@Nr§r€rGr-r5rKr/c óP•—||_t¦«jd|||dœ|¤ŽdSrª)Ú_handlerr«rR)rQr€rGr-r5rKr¬s €r2rRzRawTestServer.__init__îs8ø€ð ˆŒ Ø�‰ŒÔÐG ¨T¸ÐGÐGÀÐGÐGÐGÐGÐGr4TÚdebugc‹óXK—t|jf|j|dœ|¤Ž}t|fd|i|¤ŽS)N)rHr´r´)r%r³rMr&)rQr´rKÚsrvs r2razRawTestServer._make_runnerúsAèè€Ý�T”]ÐK¨¬¸5ÐKÐKÀFÐKÐKˆÝ˜CÐ7Ð7 uÐ7°Ð7Ð7Ð7r4)T)ršr›rœrr)r rvržr rBrrRr¡r&rar®r¯s@r2r±r±ísÕø€€€€€ð &.ØØ"ð Hð Hð Hà ð Hð�c˜6�kÔ"ð Hð ð Hð �sŒmð Hðð Hð ð Hð Hð Hð Hð Hð Hð8ð8¨ð8¸sð8À|ð8ð8ð8ð8ð8ð8ð8ð8r4r±c ó¤—eZdZdZdZdddœdedeedeej de d df d „Z d'd „Z e d efd „¦«Ze d eefd „¦«Ze d efd„¦«Ze d eefd„¦«Ze d efd„¦«Zded efd„Zdedede d efd„Zdedede d efd„Zdede d efd„Zdede d efd„Zdede d efd„Z dede d efd„Z!dede d efd„Z"dede d efd„Z#dede d efd„Z$dede d e%fd„Z&dede d e'fd„Z(d'd„Z)d'd „Z*d!ee+e,d"ee,d#ee-d dfd$„Z.d(d%„Z/d!ee+e,d"ee,d#ee-d dfd&„Z0dS))Ú TestClientzb A test client implementation. To write functional tests for aiohttp based servers. FN)Ú cookie_jarrHrmr¹rHrKr/c ó —t|t¦«stdt|¦«z¦«‚||_||_|€t jd|¬¦«}td||dœ|¤Ž|_ d|_ g|_ g|_ dS)Nz2server must be TestServer instance, found type: %rT)ÚunsaferH)rHr¹Fr^) Ú isinstancerFr‡ÚtyperirMÚaiohttpÚ CookieJarrÚ_sessionrPÚ _responsesÚ _websockets)rQrmr¹rHrKs r2rRzTestClient.__init__ s™€õ˜&¥.Ñ1Ô1ð ÝØGÍ$ÈvÉ,Ì,ÑVñôð ðˆŒ ØˆŒ Ø Ð Ý Ô*°$¸TÐBÑBÔBˆJÝ%ÐQ¨4¸JÐQÐQÈ&ÐQÐQˆŒ ؈Œ Ø02ˆŒØ:<ˆÔÐÐr4cƒóVK—|j |j¬¦«ƒd{V—†dSr’)rirnrMrzs r2rnzTestClient.start_servers9èè€ØŒl×'Ò'¨T¬ZÐ'Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8r4có—|jjSrp)rir-rzs r2r-zTestClient.host!ó €àŒ|Ô Ð r4có—|jjSrp)rir5rzs r2r5zTestClient.port%rÅr4có—|jSrp)rirzs r2rmzTestClient.server)r~r4cój—tttt|jdd¦«¦«S)Nr¨)rr r!Úgetattrrirzs r2r¨zTestClient.app-s%€å•H�[Ô)­7°4´<ÀÈÑ+MÔ+MÑNÔNÐNr4có—|jS)zðAn internal aiohttp.ClientSession. Unlike the methods on the TestClient, client session requests do not automatically include the host in the url queried, and will require an absolute path to the resource. )rÀrzs r2ÚsessionzTestClient.session1s €ðŒ}Ðr4rrcó6—|j |¦«Srp)rirx)rQrrs r2rxzTestClient.make_url<s€ØŒ|×$Ò$ TÑ*Ô*Ð*r4Úmethodc‹ó˜K—|jj|| |¦«fi|¤Žƒd{V—†}|j |¦«|Srp)rÀÚrequestrxrÁÚappend)rQrÍrrrKÚresps r2Ú_requestzTestClient._request?s_èè€ð+�T”]Ô*¨6°4·=²=ÀÑ3FÔ3FÐQÐQÈ&ÐQÐQÐQÐQÐQÐQÐQÐQˆà Œ×Ò˜tÑ$Ô$Ð$؈ r4c ó:—t|j||fi|¤Ž¦«S)zÔRoutes a request to tested http server. The interface is identical to aiohttp.ClientSession.request, except the loop kwarg is overridden by the instance used by the test server. )rrÒ)rQrÍrrrKs r2rÏzTestClient.requestGs(€õ& m d¤m°F¸DÐ&KÐ&KÀFÐ&KÐ&KÑLÔLÐLr4c óN—t|jtj|fi|¤Ž¦«S)zPerform an HTTP GET request.)rrÒrÚMETH_GET©rQrrrKs r2ÚgetzTestClient.getSó(€å% m d¤mµD´MÀ4Ð&RÐ&RÈ6Ð&RÐ&RÑSÔSÐSr4c óN—t|jtj|fi|¤Ž¦«S)zPerform an HTTP POST request.)rrÒrÚ METH_POSTrÖs r2ÚpostzTestClient.postWó(€å% m d¤mµD´NÀDÐ&SÐ&SÈFÐ&SÐ&SÑTÔTÐTr4c óN—t|jtj|fi|¤Ž¦«S)z Perform an HTTP OPTIONS request.)rrÒrÚ METH_OPTIONSrÖs r2ÚoptionszTestClient.options[s)€å% m d¤mµDÔ4EÀtÐ&VÐ&VÈvÐ&VÐ&VÑWÔWÐWr4c óN—t|jtj|fi|¤Ž¦«S)zPerform an HTTP HEAD request.)rrÒrÚ METH_HEADrÖs r2ÚheadzTestClient.head_rÜr4c óN—t|jtj|fi|¤Ž¦«S)zPerform an HTTP PUT request.)rrÒrÚMETH_PUTrÖs r2ÚputzTestClient.putcrØr4c óN—t|jtj|fi|¤Ž¦«S©zPerform an HTTP PATCH request.)rrÒrÚ METH_PATCHrÖs r2ÚpatchzTestClient.patchgs(€å% m d¤mµD´OÀTÐ&TÐ&TÈVÐ&TÐ&TÑUÔUÐUr4c óN—t|jtj|fi|¤Ž¦«Srç)rrÒrÚ METH_DELETErÖs r2ÚdeletezTestClient.deleteks)€å% m d¤mµDÔ4DÀdÐ&UÐ&UÈfÐ&UÐ&UÑVÔVÐVr4c ó8—t|j|fi|¤Ž¦«S)zjInitiate websocket connection. The api corresponds to aiohttp.ClientSession.ws_connect. )rÚ _ws_connectrÖs r2Ú ws_connectzTestClient.ws_connectos(€õ (Ð(8¨Ô(8¸Ð(HÐ(HÀÐ(HÐ(HÑIÔIÐIr4c‹ó–K—|jj| |¦«fi|¤Žƒd{V—†}|j |¦«|Srp)rÀrïrxrÂrÐ)rQrrrKÚwss r2rîzTestClient._ws_connectws^èè€ð,�4”=Ô+¨D¯MªM¸$Ñ,?Ô,?ÐJÐJÀ6ÐJÐJÐ JÐ JÐ JÐ JÐ JÐ JˆØ Ô×Ò Ñ#Ô#Ð#؈ r4cƒó*K—|js‰|jD]}| ¦«Œ|jD]}| ¦«ƒd{V—†Œ|j ¦«ƒd{V—†|j ¦«ƒd{V—†d|_dSdS)aHClose all fixtures created by the test client. After that point, the TestClient is no longer usable. This is an idempotent function: running close multiple times will not have any additional effects. close is also run on exit when used as a(n) (asynchronous) context manager. NT)rPrÁrƒrÂrÀri)rQrÑrñs r2rƒzTestClient.close~sÈèè€ðŒ|ð Øœð ð �Ø— ’ ‘ ” � � ØÔ&ð !ð !�Ø—h’h‘j”jÐ Ð Ð Ð Ð Ð Ð Ð Ø”-×%Ò%Ñ'Ô'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø”,×$Ò$Ñ&Ô&Ð &Ð &Ð &Ð &Ð &Ð &Ð &؈DŒLˆLˆLð ð r4có —td¦«‚r…r†rzs r2rˆzTestClient.__enter__“r‰r4rŠÚexcÚtbcó—dSrpr^©rQrŠrôrõs r2r�zTestClient.__exit__–r�r4cƒó>K—| ¦«ƒd{V—†|Srp)rnrzs r2r”zTestClient.__aenter__Ÿs/èè€Ø×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!؈ r4cƒó>K—| ¦«ƒd{V—†dSrpr–r÷s r2r—zTestClient.__aexit__£r˜r4r™)r/r¸)1ršr›rœÚ__doc__r�rFr rrŸr rrRrnr£rvr-rBr5rmr!r¨rrËr rrxrrÒrrÏr×rÛrßrârårérìrrïrrîrƒrˆr r¤rr�r”r—r^r4r2r¸r¸ÿsŒ€€€€€ððð€Hð 37Ø48ð =ð=ð=àð=ðÐ.Ô/ð =ð �wÔ0Ô1ð =ð ð =ð ð=ð=ð=ð=ð*9ð9ð9ð9ðð!�cð!ð!ð!ñ„Xð!ðð!�h˜s”mð!ð!ð!ñ„Xð!ðð˜ðððñ„XðððO�X˜kÔ*ðOðOðOñ„XðOðð˜ðððñ„Xðð+˜Xð+¨#ð+ð+ð+ð+ðØðØ!)ðØ58ðà ððððð MØð MØ!)ð MØ58ð Mà ð Mð Mð Mð MðT˜ðT¨CðTÐ4JðTðTðTðTðU˜ðU¨SðUÐ5KðUðUðUðUðX˜HðX°ðXÐ8NðXðXðXðXðU˜ðU¨SðUÐ5KðUðUðUðUðT˜ðT¨CðTÐ4JðTðTðTðTðV˜(ðV¨cðVÐ6LðVðVðVðVðW˜8ðW¨sðWÐ7MðWðWðWðWðJ˜xðJ°3ðJÐ;SðJðJðJðJðØðØ(+ðà ððððð ð ð ð ð*2ð2ð2ð2ð à˜4  Ô.Ô/ð ð�mÔ $ð ð �]Ô #ð  ð ð  ð ð ð ðððððà˜4  Ô.Ô/ðð�mÔ $ðð �]Ô #ð ð ð ðððððr4r¸cój—eZdZdZdefd„Zdefd„Zdd„Zdd„Zdd„Z dd „Z d ede fd „Z d e de fd „ZdS)ÚAioHTTPTestCaseaA base class to allow for unittest web applications using aiohttp. Provides the following: * self.client (aiohttp.test_utils.TestClient): an aiohttp test client. * self.loop (asyncio.BaseEventLoop): the event loop in which the application and server are running. * self.app (aiohttp.web.Application): the application returned by self.get_application() Note that the TestClient's methods are asynchronous: you have to execute function on the test client using asynchronous methods. r/cƒó.K—| ¦«S)z‰Get application. This method should be overridden to return the aiohttp.web.Application object to test. )Úget_apprzs r2Úget_applicationzAioHTTPTestCase.get_application»sèè€ð�|Š|‰~Œ~Ðr4có —td¦«‚)zqObsolete method used to constructing web application. Use .get_application() coroutine instead. z+Did you forget to define get_application()?)Ú RuntimeErrorrzs r2rþzAioHTTPTestCase.get_appÄs€õ ÐHÑIÔIÐIr4NcƒójK—tj¦«|_| ¦«ƒd{V—†Srp)rŸÚget_running_looprHÚ setUpAsyncrzs r2Ú asyncSetUpzAioHTTPTestCase.asyncSetUpËs8èè€ÝÔ,Ñ.Ô.ˆŒ Ø—_’_Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&r4cƒóK—| ¦«ƒd{V—†|_| |j¦«ƒd{V—†|_| |j¦«ƒd{V—†|_|j ¦«ƒd{V—†dSrp)rÿr¨Ú get_serverrmÚ get_clientÚclientrnrzs r2rzAioHTTPTestCase.setUpAsyncÏs¥èè€Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/ˆŒØ ŸOšO¨D¬HÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5ˆŒ Ø ŸOšO¨D¬KÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆŒ àŒk×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(r4cƒó:K—| ¦«ƒd{V—†Srp)Ú tearDownAsyncrzs r2Ú asyncTearDownzAioHTTPTestCase.asyncTearDownÖs*èè€Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)r4cƒóHK—|j ¦«ƒd{V—†dSrp)r rƒrzs r2r zAioHTTPTestCase.tearDownAsyncÙs2èè€ØŒk×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!r4r¨cƒó2K—t||j¬¦«S)zReturn a TestServer instance.r“)r¦rH)rQr¨s r2rzAioHTTPTestCase.get_serverÜsèè€å˜# D¤IÐ.Ñ.Ô.Ð.r4rmcƒó2K—t||j¬¦«S)zReturn a TestClient instance.r“)r¸rH)rQrms r2rzAioHTTPTestCase.get_clientàsèè€å˜& t¤yÐ1Ñ1Ô1Ð1r4r™)ršr›rœrúr!rÿrþrrr r r¦rr¸rr^r4r2rürü¬s퀀€€€ð ð ð {ðððððJ˜ðJðJðJðJð'ð'ð'ð'ð)ð)ð)ð)ð*ð*ð*ð*ð"ð"ð"ð"ð/ Kð/°Jð/ð/ð/ð/ð2 zð2°jð2ð2ð2ð2ð2ð2r4rüÚfuncÚargsrKcó>—tjdtd¬¦«|S)zw A decorator dedicated to use with asynchronous AioHTTPTestCase test methods. In 3.8+, this does nothing. zBDecorator `@unittest_run_loop` is no longer needed in aiohttp 3.8+rX)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarning)rrrKs r2Úunittest_run_looprås-€õ  „MØLÝØðñôðð €Kr4FÚ loop_factoryÚfastc#óRK—t|¦«}|V—t||¬¦«dS)zzA contextmanager that creates an event_loop, for test purposes. Handles the creation and cleanup of a test loop. )rN)Úsetup_test_loopÚteardown_test_loop)rrrHs r2Ú loop_contextrös7èè€õ ˜<Ñ (Ô (€DØ €J€J€JÝ�t $Ð'Ñ'Ô'Ð'Ð'Ð'r4cóB—|¦«}tj|¦«|S)z”Create and return an asyncio.BaseEventLoop instance. The caller should also call teardown_test_loop, once they are done with the loop. )rŸÚset_event_loop)rrHs r2rrs%€ð ˆ<‰>Œ>€DÝ Ô˜4Ñ Ô Ð Ø €Kr4rHcó—| ¦«}|sB| |j¦«| ¦«| ¦«|st j¦«tjd¦«dS)z>Teardown and cleanup an event_loop created by setup_test_loop.N) Ú is_closedÚ call_soonÚstopÚ run_foreverrƒÚgcÚcollectrŸr)rHrr}s r2rrsv€à �^Š^Ñ Ô €FØ ðØ �Š�t”yÑ!Ô!Ð!Ø ×ÒÑÔÐØ � Š ‰ Œ ˆ à ðÝ Œ ‰ Œ ˆ å Ô˜4Ñ Ô Ð Ð Ð r4có4—dtdtdtfd„}dtdtdtddfd„}tjt¬¦«}i|_||_||_d|_t|¦«|_ |j   ¦«|S) Nr¨Úkeyr/có—|j|Srp©Ú __app_dict)r¨r(s r2Úget_dictz"_create_app_mock..get_dicts€ØŒ~˜cÔ"Ð"r4Úvaluecó—||j|<dSrpr*)r¨r(r-s r2Úset_dictz"_create_app_mock..set_dict"s€Ø#ˆŒ�sÑÐÐr4)ÚspecF) rrvrÚ MagicMockr!r+Ú __getitem__Ú __setitem__Ú_debugrÚon_response_prepareÚfreeze)r,r/r¨s r2Ú_create_app_mockr7s³€ð#•cð#¥ð#­ð#ð#ð#ð#ð$•cð$¥ð$­Cð$°Dð$ð$ð$ð$õ Œ.�kÐ *Ñ *Ô *€CØ€C„NØ€C„OØ€C„Oà€C„JÝ$ S™kœk€CÔØÔ×"Ò"Ñ$Ô$Ð$Ø €Jr4Ú sslcontextc󄇗tj¦«}dtdttfˆfd„ }||j_|S)Nr(r/có•—|dkr‰SdS)Nr8r^)r(r8s €r2Úget_extra_infoz)_create_transport..get_extra_info3sø€Ø �,Ò Ð ØÐ à�4r4)rÚMockrvr r*r;Ú side_effect)r8Ú transportr;s` r2Ú_create_transportr?0sRø€Ý” ‘ ” €Ið�Cð¥H­ZÔ$8ððððððð ,:€IÔÔ(Ø Ðr4i.) Ú match_inforeÚclosingr¨ÚwriterÚprotocolr>Úpayloadr8Úclient_max_sizerHrÍrrÚheadersr@rerAr¨rBrCr>rDrEc óª—tj¦«}| durtj¦«} d| j_|t dd¦«krd}|rHt t |¦«¦«}td„| ¦«D¦«¦«}nt t ¦«¦«}d}d|  tj d¦«  ¦«v}t||||||dd |t|¦«¦ « }|€t¦«}| t urt#| ¦«} |t urtj¦«}| |_|t urjtj¦«}t'd¦«|_t'd¦«|_t'd¦«|_t'd¦«|_| |_| |_||_| t urtj¦«} t3|| |||| | ¬ ¦«}t5|t urin|tj¦«¦«}| |¦«||_|S) z±Creates mocked web.Request testing purposes. Useful in unit tests, when spinning full web server is overkill or specific conditions and errors are hard to trigger. .r^rTc3ópK—|]1\}}| d¦«| d¦«fV—Œ2dS)zutf-8N)Úencode)Ú.0ÚkÚvs r2ú z&make_mocked_request..]sTèè€ð ð Ù7;°q¸!ˆQ�XŠX�gÑ Ô  §¢¨Ñ 1Ô 1Ð 2ð ð ð ð ð ð r4ÚchunkedÚNF)rE)rr<Ú create_futureÚ return_valuerrrÚtupleÚitemsr×rÚTRANSFER_ENCODINGÚlowerrrr7rr?r>Úmake_mocked_coroÚ write_headersÚwriteÚ write_eofÚdrainrBr$r(Úadd_appÚ _match_info)rÍrrrFr@rerAr¨rBrCr>rDr8rErHÚtaskÚraw_hdrsrNÚmessageÚreqs r2Úmake_mocked_requestra=sD€õ, Œ9‰;Œ;€DØ ˆs€{€{ÝŒy‰{Œ{ˆØ*,ˆÔÔ'à•˜Q Ñ"Ô"Ò"Ð"؈àðÝ"¥;¨wÑ#7Ô#7Ñ8Ô8ˆÝð ð Ø?F¿}º}¹¼ð ñ ô ñ ô ˆˆõ#¥;¡=¤=Ñ1Ô1ˆØˆà˜7Ÿ;š;¥tÔ'=¸rÑBÔB×HÒHÑJÔJÐJ€G娨 ØØØØØ Ø ØÝ ˆD‰ Œ ñ ô €Gð €{ÝÑ Ô ˆà•HÐÐÝ% jÑ1Ô1ˆ à•8ÐÐÝ”9‘;”;ˆØ&ˆÔà •ÐÐÝ”‘”ˆÝ/°Ñ5Ô5ˆÔÝ'¨Ñ-Ô-ˆŒ Ý+¨DÑ1Ô1ˆÔÝ'¨Ñ-Ô-ˆŒ Ø$ˆÔà"€HÔØ€H„Oà•(ÐÐÝ”)‘+”+ˆå Ø�˜( F¨D°$Èð ñ ô €Cõ%Ø�HÐ$Ð$ˆˆ¨*µd´i±k´kñô€Jð×Ò�sÑÔÐØ €C„Oà €Jr4rQÚraise_exceptioncóh‡‡—dtdtdtfˆˆfd„ }tj|¬¦«S)zCreates a coroutine mock.rrKr/cŸó^•K—‰tur‰‚tj‰¦«s‰S‰ƒd{V—†dSrp)rÚinspectÚ isawaitable)rrKrbrQs €€r2Ú mock_coroz#make_mocked_coro..mock_coroœsOøèè€Ø ¥(Ð *Ð *Ø!Ð !ÝÔ" <Ñ0Ô0ð ØÐ ØÐÐÐÐÐÐÐÐÐr4)Úwraps)rrr<)rQrbrgs`` r2rVrV—sQøø€ð �sð­cðµcðððððððõ Œ9˜9Ð %Ñ %Ô %Ð%r4)Frp)arúrŸÚ contextlibr%rercÚosr7ÚsysrÚabcrrÚtypesrÚtypingrrrr r r r r rÚunittestrrÚ aiosignalrÚ multidictrrÚyarlrr¾Úaiohttp.clientrrrOrrrÚ client_reqreprÚ client_wsrÚhelpersrr\rrÚtypedefsr Úwebr!r"r#r$r%r&r'r(Ú web_protocolr)rTr*ÚnameÚplatformr9rArvr¢r3rBr1rDrFr¦r±r¸rürr Ú _LOOP_FACTORYÚcontextmanagerÚnew_event_loopr¡rrrr1r7r<r?rarVr^r4r2úrs®ðØ Ð à€€€ØÐÐÐØ € € € Ø€€€ØÐÐÐØ € € € Ø € € € Ø € € € Ø€€€Ø#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð3Ð2Ð2Ð2Ð2Ð2Ð2Ð2àÐÐÐÐÐØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ØÐÐÐÐÐà€€€ØKÐKÐKÐKÐKÐKÐKÐKà!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ø"Ð"Ð"Ð"Ð"Ð"Ø)Ð)Ð)Ð)Ð)Ð)Ø.Ð.Ð.Ð.Ð.Ð.ØÐÐÐÐÐØ0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÐÐÐÐÐð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð*Ð)Ð)Ð)Ð)Ð)àðØÐÐÐÐÐÐà€Jà”˜7Ò"Ð? s¤|°xÒ'?€ ð/5¬nð,ð,Ø ð,ØÔ+ð,à „]ð,ð,ð,ð,ð  Ø ð  Øð  Ø"(Ô"6ð  à „]ð  ð  ð  ð  ð-�Sð-ð-ð-ð-ðBðBðBðBðB�SñBôBðBðJ-ð-ð-ð-ð-�ñ-ô-ð-ð"8ð8ð8ð8ð8�Nñ8ô8ð8ð$jðjðjðjðjñjôjðjðZ62ð62ð62ð62ð62Ð-ñ62ô62ð62ðr ˜Cð ¨ð °sð ¸sð ð ð ð ð˜˜WÔ6Ð6Ô7€ ð Ôà")Ô"8Àuð (ð (Øð (Ø@Dð (à ˆgÔ'Ô(ð (ð (ð (ñÔð (ð#*Ô"8ð ð Øð à Ôð ð ð ð ð !ð !˜WÔ6ð !¸dð !Ètð !ð !ð !ð !ð˜$œ.ððððð$ ð  (¨:Ô"6ð À$Ä)ð ð ð ð ð ðWð Ø&˜; q¨!Ñ,Ô,ØØØØØØØ'+Ø"ØðWðWðWØ ðWà ðWððWð ð Wð ð WððWð ðWð ðWððWððWððWð˜Ô$ðWððWð ðWð  ð!WðWðWðWðv!¸ð &ð &Øð &Ø36ð &àð &ð &ð &ð &ð &ð &r4