Ë
    êmxi{"  ã                   óŒ  — d dl mZmZmZmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d dlZ G d„ de	«      Z G d	„ d
e«      Zi Z G d„ de«      Z G d„ de«      Z G d„ de	«      Z G d„ de«      Zd„ Z ed«      Z ed«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z" G d„ de«      Z#y) é    )ÚHTTPHeadersÚHTTPMessageDelegateÚHTTPServerConnectionDelegateÚResponseStartLine)ÚHostMatchesÚPathMatchesÚReversibleRouterÚRouterÚRuleÚ
RuleRouter)ÚAsyncHTTPTestCase)ÚApplicationÚ	HTTPErrorÚRequestHandler)ÚWSGIContainerNc                   ó   — e Zd Zd„ Zy)ÚBasicRouterc                 óD   —  G d„ dt         «      } ||j                  «      S )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú1BasicRouter.find_handler.<locals>.MessageDelegatec                 ó   — || _         y ©N©Ú
connection©Úselfr   s     úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/routing_test.pyÚ__init__z:BasicRouter.find_handler.<locals>.MessageDelegate.__init__%   ó	   € Ø",�•ó    c                 óž   — | j                   j                  t        ddd«      t        ddi«      d«       | j                   j	                  «        y ©NúHTTP/1.1éÈ   ÚOKúContent-LengthÚ2ó   OK)r   Úwrite_headersr   r   Úfinish©r   s    r   r*   z8BasicRouter.find_handler.<locals>.MessageDelegate.finish(   sC   € Ø—‘×-Ñ-Ü% j°#°tÓ<ÜÐ!1°3Ð 7Ó8Øôð
 —‘×&Ñ&Õ(r    N©Ú__name__Ú
__module__Ú__qualname__r   r*   © r    r   ÚMessageDelegater   $   s   „ ò-ó)r    r1   )r   r   )r   ÚrequestÚkwargsr1   s       r   Úfind_handlerzBasicRouter.find_handler#   s"   € ô
	)Ô1ô 
	)ñ ˜w×1Ñ1Ó2Ð2r    N)r-   r.   r/   r4   r0   r    r   r   r   "   s   „ ó3r    r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBasicRouterTestCasec                 ó   — t        «       S r   )r   r+   s    r   Úget_appzBasicRouterTestCase.get_app4   s
   € Ü‹}Ðr    c                 ó^   — | j                  d«      }| j                  |j                  d«       y )Nz/any_requestr(   ©ÚfetchÚassertEqualÚbody©r   Úresponses     r   Útest_basic_routerz%BasicRouterTestCase.test_basic_router7   s$   € Ø—:‘:˜nÓ-ˆØ×Ñ˜Ÿ™¨Õ.r    N)r-   r.   r/   r8   r@   r0   r    r   r6   r6   3   s   „ òó/r    r6   c                   ó   — e Zd Zd„ Zy)ÚGetResourcec                 óZ   — |t         vrt        d«      ‚| j                  t         |   «       y )Né”  )Ú	resourcesr   r*   ©r   Úpaths     r   ÚgetzGetResource.get@   s$   € Ø”yÑ Ü˜C“.Ð à�‰”I˜d‘OÕ$r    N©r-   r.   r/   rH   r0   r    r   rB   rB   ?   s   „ ó%r    rB   c                   ó   — e Zd Zd„ Zy)ÚPostResourcec                 ó>   — | j                   j                  t        |<   y r   )r2   r=   rE   rF   s     r   ÚpostzPostResource.postH   s   € ØŸ,™,×+Ñ+Œ	�$Šr    N)r-   r.   r/   rM   r0   r    r   rK   rK   G   s   „ ó,r    rK   c                   ó   — e Zd Zd„ Zd„ Zy)ÚHTTPMethodRouterc                 ó   — || _         y r   )Úapp)r   rQ   s     r   r   zHTTPMethodRouter.__init__M   s	   € Øˆ�r    c                 óŠ   — |j                   dk(  rt        nt        }| j                  j	                  |||j
                  g¬«      S )NÚGET)Ú	path_args)ÚmethodrB   rK   rQ   Úget_handler_delegaterG   )r   r2   r3   Úhandlers       r   r4   zHTTPMethodRouter.find_handlerP   s6   € Ø!(§¡°5Ò!8•+¼lˆØ�x‰x×,Ñ,¨W°gÈ'Ï,É,ÈÐ,ÓXÐXr    N)r-   r.   r/   r   r4   r0   r    r   rO   rO   L   s   „ òóYr    rO   c                   ó   — e Zd Zd„ Zd„ Zy)ÚHTTPMethodRouterTestCasec                 ó(   — t        t        «       «      S r   )rO   r   r+   s    r   r8   z HTTPMethodRouterTestCase.get_appV   s   € Ü¤£Ó.Ð.r    c                 óP  — | j                  ddd¬«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       | j                  |j                  d«       y )	Nz/post_resourceÚPOSTÚdata)rU   r=   r$   z/get_resourcerD   s   data)r;   r<   Úcoder=   r>   s     r   Útest_http_method_routerz0HTTPMethodRouterTestCase.test_http_method_routerY   s„   € Ø—:‘:Ð.°vÀF�:ÓKˆØ×Ñ˜Ÿ™¨Ô,à—:‘:˜oÓ.ˆØ×Ñ˜Ÿ™¨Ô,à—:‘:Ð.Ó/ˆØ×Ñ˜Ÿ™¨Ô,Ø×Ñ˜Ÿ™¨Õ0r    N)r-   r.   r/   r8   r_   r0   r    r   rY   rY   U   s   „ ò/ó	1r    rY   c                 ó*   ‡ —  G ˆ fd„dt         «      }|S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú#_get_named_handler.<locals>.Handlerc                 óò   •— | j                   j                  j                  d«      �+| j                  | j                   j                  d   dz   «       | j	                  ‰dz   | j                  ‰«      z   «       y )NÚapp_namez: )ÚapplicationÚsettingsrH   Úwriter*   Úreverse_url)r   Úargsr3   Úhandler_names      €r   rH   z'_get_named_handler.<locals>.Handler.getg   sc   ø€ Ø×Ñ×(Ñ(×,Ñ,¨ZÓ8ÐDØ—
‘
˜4×+Ñ+×4Ñ4°ZÑ@À4ÑGÔHà�K‰K˜ tÑ+¨d×.>Ñ.>¸|Ó.LÑLÕMr    NrI   )rj   s   €r   ÚHandlerrb   f   s	   ø„ õ	Nr    rk   )r   )rj   rk   s   ` r   Ú_get_named_handlerrl   e   s   ø€ öN”.ô Nð €Nr    Úfirst_handlerÚsecond_handlerc                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚCustomRouterc                 ó0   •— t         ‰| �  «        i | _        y r   )Úsuperr   Úroutes)r   Ú	__class__s    €r   r   zCustomRouter.__init__u   s   ø€ Ü‰ÑÔØˆ�r    c                 ó:   — | j                   j                  |«       y r   )rs   Úupdate)r   rs   s     r   Ú
add_routeszCustomRouter.add_routesy   s   € Ø�‰×Ñ˜6Õ"r    c                 ó�   — |j                   | j                  v r.| j                  |j                      \  }}|j                  ||«      S y r   )rG   rs   rV   )r   r2   r3   rQ   rW   s        r   r4   zCustomRouter.find_handler|   s@   € Ø�<‰<˜4Ÿ;™;Ñ&ØŸ;™; w§|¡|Ñ4‰LˆC�Ø×+Ñ+¨G°WÓ=Ð=ð 'r    c                 ó0   — d|z   }|| j                   v r|S d S )Nú/)rs   )r   Únameri   Úhandler_paths       r   rh   zCustomRouter.reverse_url�   s!   € Ø˜T‘zˆØ+¨t¯{©{Ñ:ˆ|ÐDÀÐDr    )r-   r.   r/   r   rw   r4   rh   Ú__classcell__)rt   s   @r   rp   rp   t   s   ø„ ôò#ò>ö
Er    rp   c                   ó   — e Zd Zd„ Zd„ Zy)ÚCustomRouterTestCasec                 ó°   ‡— t        «       Š G ˆfd„dt        «      } |d¬«      } |d¬«      }‰j                  |t        f|t        f|t        fdœ«       ‰S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú7CustomRouterTestCase.get_app.<locals>.CustomApplicationc                 ó*   •—  ‰j                   |g|¢­Ž S r   )rh   )r   r{   ri   Úrouters      €r   rh   zCCustomRouterTestCase.get_app.<locals>.CustomApplication.reverse_url‹   s   ø€ Ø)�v×)Ñ)¨$Ð6°Ò6Ð6r    N)r-   r.   r/   rh   )r„   s   €r   ÚCustomApplicationr‚   Š   s   ø„ õ7r    r…   Úapp1)rd   Úapp2)ú/first_handlerú/second_handlerú/first_handler_second_app)rp   r   rw   ÚFirstHandlerÚSecondHandler)r   r…   r†   r‡   r„   s       @r   r8   zCustomRouterTestCase.get_app‡   s^   ø€ Ü“ˆö	7¤ô 	7ñ !¨&Ô1ˆÙ ¨&Ô1ˆà×Ñà#'¬Ð"6Ø$(¬-Ð#8Ø.2´LÐ-Añô	
ð ˆr    c                 ó  — | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       y )Nrˆ   s#   app1: first_handler: /first_handlerr‰   s%   app2: second_handler: /second_handlerrŠ   s#   app2: first_handler: /first_handlerr:   r>   s     r   Útest_custom_routerz'CustomRouterTestCase.test_custom_router›   sn   € Ø—:‘:Ð.Ó/ˆØ×Ñ˜Ÿ™Ð(NÔOØ—:‘:Ð/Ó0ˆØ×Ñ˜Ÿ™Ð(PÔQØ—:‘:Ð9Ó:ˆØ×Ñ˜Ÿ™Ð(NÕOr    N)r-   r.   r/   r8   rŽ   r0   r    r   r   r   †   s   „ òó(Pr    r   c                   ó   — e Zd Zd„ Zy)ÚConnectionDelegatec                 ó0   —  G d„ dt         «      } ||«      S )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú9ConnectionDelegate.start_request.<locals>.MessageDelegatec                 ó   — || _         y r   r   r   s     r   r   zBConnectionDelegate.start_request.<locals>.MessageDelegate.__init__§   r   r    c                 óú   — d}| j                   j                  t        ddd«      t        dt	        t        |«      «      i«      «       | j                   j                  |«       | j                   j                  «        y )Nr(   r#   r$   r%   r&   )r   r)   r   r   ÚstrÚlenrg   r*   )r   Úresponse_bodys     r   r*   z@ConnectionDelegate.start_request.<locals>.MessageDelegate.finishª   sa   € Ø %�Ø—‘×-Ñ-Ü% j°#°tÓ<ÜÐ!1´3´s¸=Ó7IÓ3JÐ KÓLôð —‘×%Ñ% mÔ4Ø—‘×&Ñ&Õ(r    Nr,   r0   r    r   r1   r“   ¦   s   „ ò-ó)r    r1   )r   )r   Úserver_connÚrequest_connr1   s       r   Ústart_requestz ConnectionDelegate.start_request¥   s   € ô	)Ô1ô 	)ñ ˜|Ó,Ð,r    N)r-   r.   r/   r›   r0   r    r   r�   r�   ¤   s   „ ó-r    r�   c                   ó   — e Zd Zd„ Zd„ Zy)ÚRuleRouterTestc                 ób  — t        «       }d„ }t        «       }|j                  d|t        d«      fi«       |j	                  dt        d«      t        d«      di dfgft        t        d	«      |«      t        t        d«      t        d
¬«      t        t        d«      |«      dt        «       fg«       |S )Nc                 óÒ   — | j                   j                  t        ddd«      t        ddi«      «       | j                   j	                  d«       | j                   j                  «        y r"   )r   r)   r   r   rg   r*   )r2   s    r   Úrequest_callablez0RuleRouterTest.get_app.<locals>.request_callableº   sX   € Ø×Ñ×,Ñ,Ü! *¨c°4Ó8ÜÐ-¨sÐ3Ó4ôð ×Ñ×$Ñ$ UÔ+Ø×Ñ×%Ñ%Õ'r    ú/nested_handlerÚnested_handlerz.*úwww.example.comrˆ   z'tornado.test.routing_test.SecondHandlerrn   z
/.*handlerrm   )r{   ú/request_callableú/connection_delegate)
r   rp   rw   rl   Úadd_handlersr   r   r   r‹   r�   )r   rQ   r    r„   s       r   r8   zRuleRouterTest.get_app·   sÆ   € Ü‹mˆò	(ô “ˆØ×ÑØ Ô&8Ð9IÓ&JÐ KÐLô	
ð 	×ÑØô  Ð 1Ó2ô (Ð(8Ó9ØEØØ,ð	ðð
ô ”[ Ó.°Ó7Ü”[Ð!1Ó2´LÀÔWÜ”[Ð!4Ó5Ð7GÓHØ'Ô);Ó)=Ð>ðô	
ð* ˆ
r    c                 ó‚  — | j                  d«      }| j                  |j                  d«       | j                  dddi¬«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       | j                  d	«      }| j                  |j                  d
«       | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d
«       y )Nrˆ   s   first_handler: /first_handlerÚHostr£   )Úheaderss   second_handler: /first_handlerr¡   s   nested_handler: /nested_handlerz/nested_not_found_handlerrD   r¥   r(   r¤   ú/404)r;   r<   r=   r^   r>   s     r   Útest_rule_based_routerz%RuleRouterTest.test_rule_based_routerÞ   s  € Ø—:‘:Ð.Ó/ˆØ×Ñ˜Ÿ™Ð(HÔIà—:‘:Ð.¸ÐARÐ8S�:ÓTˆØ×Ñ˜Ÿ™Ð(IÔJà—:‘:Ð/Ó0ˆØ×Ñ˜Ÿ™Ð(JÔKà—:‘:Ð9Ó:ˆØ×Ñ˜Ÿ™¨Ô,à—:‘:Ð4Ó5ˆØ×Ñ˜Ÿ™¨Ô.à—:‘:Ð1Ó2ˆØ×Ñ˜Ÿ™¨Ô.à—:‘:˜fÓ%ˆØ×Ñ˜Ÿ™¨Õ,r    N)r-   r.   r/   r8   r«   r0   r    r   r�   r�   ¶   s   „ ò%óN-r    r�   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚWSGIContainerTestCasec           	      ó¬   — t        | j                  «      } G d„ dt        «      }t        t	        d«      t        d|i dfg«      ft	        d«      |fg«      S )Nc                   ó   — e Zd Zd„ Zy)ú.WSGIContainerTestCase.get_app.<locals>.Handlerc                 óD   — | j                  | j                  d«      «       y )NÚtornado)r*   rh   )r   ri   r3   s      r   rH   z2WSGIContainerTestCase.get_app.<locals>.Handler.getú   s   € Ø—‘˜D×,Ñ,¨YÓ7Õ8r    NrI   r0   r    r   rk   r°   ù   s   „ ó9r    rk   z
/tornado.*ú/tornado/testr²   ú/wsgi)r   Úwsgi_appr   r   r   r   )r   rµ   rk   s      r   r8   zWSGIContainerTestCase.get_appö   sc   € Ü  §¡Ó/ˆô	9”nô 	9ô ô   Ó-ÜÐ"2°G¸RÀÐ!KÐ LÓMðô ˜WÓ% xÐ0ðó
ð 	
r    c                 ó   —  |dg «       dgS )Nz200 OKó   WSGIr0   )r   ÚenvironÚstart_responses      r   rµ   zWSGIContainerTestCase.wsgi_app  s   € Ù�x Ô$ØˆyÐr    c                 ó¸   — | j                  d«      }| j                  |j                  d«       | j                  d«      }| j                  |j                  d«       y )Nr³   s   /tornado/testr´   r·   r:   r>   s     r   Útest_wsgi_containerz)WSGIContainerTestCase.test_wsgi_container  sG   € Ø—:‘:˜oÓ.ˆØ×Ñ˜Ÿ™Ð(8Ô9à—:‘:˜gÓ&ˆØ×Ñ˜Ÿ™¨Õ0r    c                 ó^   — | j                  d«      }| j                  |j                  d«       y )Nrª   rD   )r;   r<   r^   r>   s     r   Útest_delegate_not_foundz-WSGIContainerTestCase.test_delegate_not_found  s$   € Ø—:‘:˜fÓ%ˆØ×Ñ˜Ÿ™¨Õ,r    N)r-   r.   r/   r8   rµ   r»   r½   r0   r    r   r­   r­   õ   s   „ ò
ò"ò1ó-r    r­   )$Útornado.httputilr   r   r   r   Útornado.routingr   r   r	   r
   r   r   Útornado.testingr   Útornado.webr   r   r   Útornado.wsgir   Útypingr   r6   rE   rB   rK   rO   rY   rl   r‹   rŒ   rp   r   r�   r�   r­   r0   r    r   ú<module>rÄ      sß   ð÷ó ÷÷ õ .ß >Ñ >Ý &ã ô3�&ô 3ô"/Ð+ô /ð €	ô%�.ô %ô,�>ô ,ô
Y�vô Yô1Ð0ô 1ò ñ " /Ó2€Ù"Ð#3Ó4€ôEÐ#ô Eô$PÐ,ô Pô<-Ð5ô -ô$<-Ð&ô <-ô~-Ð-õ -r    