§
    ‹Ÿj~  ã            	       óf  — d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlmZmZmZ d dlmZmZ d dlZ	 d dlZd dlmZ n# e$ r dZY nw xY we G d„ de¦  «        ¦   «         Ze G d	„ d
e¦  «        ¦   «         Zd„ Ze G d„ de¦  «        ¦   «         Z G d„ de¦  «        Z G d„ de¦  «        Ze G d„ de¦  «        ¦   «         Z  G d„ de¦  «        Z!e ej"        ej#        dk    d¦  «         G d„ dej$        ¦  «        ¦   «         ¦   «         Z%e ej"        edu d¦  «         ej"        ej#        dk    d¦  «         ej"        ej#        dk    d¦  «         G d„ de¦  «        ¦   «         ¦   «         ¦   «         ¦   «         Z& G d „ d!ej$        ¦  «        Z' G d"„ d#ej$        ¦  «        Z(dS )$é    N)ÚPopen)ÚBlockingResolverÚOverrideResolverÚThreadedResolverÚis_valid_ipÚbind_sockets)ÚAsyncTestCaseÚgen_testÚbind_unused_port)ÚskipIfNoNetworkÚabstract_base_test)ÚCaresResolverc                   ó(   — e Zd ZdZed„ ¦   «         ZdS )Ú_ResolverTestMixinNc              #   óÈ   K  — | j                              ddt          j        ¦  «        V —}|                      t          j        df|v pt          j        df|v d|› �¦  «         d S )NÚ	localhostéP   )ú	127.0.0.1r   )ú::1r   zloopback address not found in )ÚresolverÚresolveÚsocketÚ	AF_UNSPECÚ
assertTrueÚAF_INETÚAF_INET6)ÚselfÚaddrinfos     úf/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/netutil_test.pyÚtest_localhostz!_ResolverTestMixin.test_localhost!   sy   è è € àœ×.Ò.¨{¸BÅÔ@PÑQÔQÐQÐQˆð 	�ŠÝŒnÐ/Ð0°HÐ<ð <Ý” +Ð.°(Ð:Ø7¨XÐ7Ð7ñ	
ô 	
ð 	
ð 	
ð 	
ó    )Ú__name__Ú
__module__Ú__qualname__r   r
   r    © r!   r   r   r      s2   € € € € € à€Hàð	
ð 	
ñ „Xð	
ð 	
ð 	
r!   r   c                   ó(   — e Zd ZdZed„ ¦   «         ZdS )Ú_ResolverErrorTestMixinNc              #   óÀ   K  — |                       t          ¦  «        5  | j                             ddt          j        ¦  «        V — d d d ¦  «         d S # 1 swxY w Y   d S )Nzan invalid domainr   )ÚassertRaisesÚIOErrorr   r   r   r   ©r   s    r   Útest_bad_hostz%_ResolverErrorTestMixin.test_bad_host4   s¶   è è € à×Ò�wÑ'Ô'ð 	Sð 	SØ”-×'Ò'Ð(;¸RÅÔAQÑRÔRÐRÐRÐRð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sð 	Sð 	Ss   �)AÁAÁA)r"   r#   r$   r   r
   r,   r%   r!   r   r'   r'   0   s7   € € € € € à€HàðSð Sñ „XðSð Sð Sr!   r'   c                  ó@   — t          j        t          j        d¦  «        ‚)z4Dummy implementation of getaddrinfo for use in mockszmock: lookup failed)r   ÚgaierrorÚerrnoÚEIO)Úargss    r   Ú_failing_getaddrinfor2   :   s   € å
Œ/�%œ)Ð%:Ñ
;Ô
;Ð;r!   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚBlockingResolverTestc                 ón   •— t          ¦   «                              ¦   «          t          ¦   «         | _        d S ©N)ÚsuperÚsetUpr   r   ©r   Ú	__class__s    €r   r8   zBlockingResolverTest.setUpA   ó%   ø€ Ý‰Œ�Š‰ŒˆÝ(Ñ*Ô*ˆŒˆˆr!   ©r"   r#   r$   r8   Ú__classcell__©r:   s   @r   r4   r4   ?   s8   ø€ € € € € ð+ð +ð +ð +ð +ð +ð +ð +ð +r!   r4   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚBlockingResolverErrorTestc                 ó²   •— t          ¦   «                              ¦   «          t          ¦   «         | _        t          j        | _        t          t          _        d S r6   ©r7   r8   r   r   r   ÚgetaddrinfoÚreal_getaddrinfor2   r9   s    €r   r8   zBlockingResolverErrorTest.setUpJ   ó:   ø€ Ý‰Œ�Š‰ŒˆÝ(Ñ*Ô*ˆŒÝ &Ô 2ˆÔÝ1�ÔÐÐr!   c                 ój   •— | j         t          _        t          ¦   «                              ¦   «          d S r6   ©rD   r   rC   r7   ÚtearDownr9   s    €r   rH   z"BlockingResolverErrorTest.tearDownP   ó*   ø€ Ø!Ô2�ÔÝ‰Œ×ÒÑÔÐÐÐr!   ©r"   r#   r$   r8   rH   r=   r>   s   @r   r@   r@   I   óQ   ø€ € € € € ð2ð 2ð 2ð 2ð 2ðð ð ð ð ð ð ð ð r!   r@   c                   ó4   ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zˆ xZS )ÚOverrideResolverTestc                 óÎ   •— t          ¦   «                              ¦   «          ddddt          j        fdddt          j        fdi}t          t          ¦   «         |¦  «        | _        d S )N)ú
google.comr   ©z1.2.3.4r   rO   r   )ú 2a02:6b8:7c:40c:c51e:495f:e23a:3r   )r7   r8   r   r   r   r   r   r   )r   Úmappingr:   s     €r   r8   zOverrideResolverTest.setUpV   s]   ø€ Ý‰Œ�Š‰Œˆà Ø˜2�vœ~Ð.°Ø˜2�vœÐ/ð 2ð
ˆõ )Õ)9Ñ);Ô);¸WÑEÔEˆŒˆˆr!   c              #   ó2  K  — | j                              ddt          j        ¦  «        V —}|                      t          j        df|¦  «         | j                              ddt          j        ¦  «        V —}|                      t          j        df|¦  «         d S )NrO   r   rP   )rQ   r   r   r   )r   r   r   r   ÚassertInr   )r   Úresults     r   Útest_resolve_multiaddrz+OverrideResolverTest.test_resolve_multiaddrb   s�   è è € à”}×,Ò,¨\¸2½v¼~ÑNÔNÐNÐNˆØ�Š•v”~ Ð7¸Ñ@Ô@Ð@à”}×,Ò,¨\¸2½v¼ÑOÔOÐOÐOˆØ�ŠÝŒ_ÐLÐMÈvñ	
ô 	
ð 	
ð 	
ð 	
r!   )r"   r#   r$   r8   r
   rV   r=   r>   s   @r   rM   rM   U   sX   ø€ € € € € ð
Fð 
Fð 
Fð 
Fð 
Fð ð
ð 
ñ „Xð
ð 
ð 
ð 
ð 
r!   rM   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚThreadedResolverTestc                 ón   •— t          ¦   «                              ¦   «          t          ¦   «         | _        d S r6   )r7   r8   r   r   r9   s    €r   r8   zThreadedResolverTest.setUpo   r;   r!   c                 óz   •— | j                              ¦   «          t          ¦   «                              ¦   «          d S r6   )r   Úcloser7   rH   r9   s    €r   rH   zThreadedResolverTest.tearDowns   s3   ø€ ØŒ×ÒÑÔÐÝ‰Œ×ÒÑÔÐÐÐr!   rJ   r>   s   @r   rX   rX   m   sQ   ø€ € € € € ð+ð +ð +ð +ð +ðð ð ð ð ð ð ð ð r!   rX   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚThreadedResolverErrorTestc                 ó²   •— t          ¦   «                              ¦   «          t          ¦   «         | _        t          j        | _        t          t          _        d S r6   rB   r9   s    €r   r8   zThreadedResolverErrorTest.setUpy   rE   r!   c                 ój   •— | j         t          _        t          ¦   «                              ¦   «          d S r6   rG   r9   s    €r   rH   z"ThreadedResolverErrorTest.tearDown   rI   r!   rJ   r>   s   @r   r]   r]   x   rK   r!   r]   Úwin32z!preexec_fn not available on win32c                   ó   — e Zd Zd„ ZdS )ÚThreadedResolverImportTestc                 óŽ  ‡— dŠt           j        ddg}t          j        ¦   «         }t          |ˆfd„¬¦  «        }t          j        ¦   «         |z
  ‰k     r\|                     ¦   «         }|�|                      d|¦  «         d S t          j        d¦  «         t          j        ¦   «         |z
  ‰k     °\|                      d¦  «         d S )	Né   z-cz'import tornado.test.resolve_test_helperc                  ó,   •— t          j        ‰ ¦  «        S r6   )ÚsignalÚalarm)ÚTIMEOUTs   €r   ú<lambda>z8ThreadedResolverImportTest.test_import.<locals>.<lambda>�   s   ø€ µ&´,¸wÑ2GÔ2G€ r!   )Ú
preexec_fnr   gš™™™™™©?zimport timed out)ÚsysÚ
executableÚtimer   ÚpollÚassertEqualÚsleepÚfail)r   ÚcommandÚstartÚpopenÚreturn_coderh   s        @r   Útest_importz&ThreadedResolverImportTest.test_import‡   sÇ   ø€ Øˆõ
 ”> 4Ð)RÐSˆå”	‘”ˆÝ�gÐ*GÐ*GÐ*GÐ*GÐHÑHÔHˆÝŒi‰kŒk˜EÑ! GÒ+Ð+ØŸ*š*™,œ,ˆKØÐ&Ø× Ò   KÑ0Ô0Ð0Ø�ÝŒJ�tÑÔÐõ Œi‰kŒk˜EÑ! GÒ+Ð+ð 	�	Š	Ð$Ñ%Ô%Ð%Ð%Ð%r!   N)r"   r#   r$   rv   r%   r!   r   rb   rb   „   s#   € € € € € ð&ð &ð &ð &ð &r!   rb   zpycares module not presentz*pycares doesn't return loopback on windowsÚdarwinz*pycares doesn't return 127.0.0.1 on darwinc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚCaresResolverTestc                 ón   •— t          ¦   «                              ¦   «          t          ¦   «         | _        d S r6   )r7   r8   r   r   r9   s    €r   r8   zCaresResolverTest.setUp¦   s#   ø€ Ý‰Œ�Š‰ŒˆÝ%™œˆŒˆˆr!   r<   r>   s   @r   ry   ry   ¡   s8   ø€ € € € € ð
(ð (ð (ð (ð (ð (ð (ð (ð (r!   ry   c                   ó   — e Zd Zd„ ZdS )ÚIsValidIPTestc                 óz  — |                       t          d¦  «        ¦  «         |                       t          d¦  «        ¦  «         |                       t          d¦  «        ¦  «         |                       t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d	¦  «        ¦  «         |                      t          d
¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         |                      t          d¦  «        ¦  «         d S )Nr   z4.4.4.4r   z2620:0:1cfe:face:b00c::3zwww.google.comr   z4.4.4.4<z
 127.0.0.1Ú ú ú
ú Údaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r   r   ÚassertFalser+   s    r   Útest_is_valid_ipzIsValidIPTest.test_is_valid_ip¬   sl  € Ø�Š� KÑ0Ô0Ñ1Ô1Ð1Ø�Š� IÑ.Ô.Ñ/Ô/Ð/Ø�Š� EÑ*Ô*Ñ+Ô+Ð+Ø�Š�Ð$>Ñ?Ô?Ñ@Ô@Ð@Ø×Ò�Ð%5Ñ6Ô6Ñ7Ô7Ð7Ø×Ò� [Ñ1Ô1Ñ2Ô2Ð2Ø×Ò� ZÑ0Ô0Ñ1Ô1Ð1Ø×Ò� \Ñ2Ô2Ñ3Ô3Ð3Ø×Ò� R™œÑ)Ô)Ð)Ø×Ò� SÑ)Ô)Ñ*Ô*Ð*Ø×Ò� TÑ*Ô*Ñ+Ô+Ð+Ø×Ò� VÑ,Ô,Ñ-Ô-Ð-Ø×Ò� YÑ/Ô/Ñ0Ô0Ð0Ð0Ð0r!   N)r"   r#   r$   r„   r%   r!   r   r|   r|   «   s#   € € € € € ð1ð 1ð 1ð 1ð 1r!   r|   c                   ó^   — e Zd Zd„ Z ej         eed¦  «         d¦  «        d„ ¦   «         ZdS )ÚTestPortAllocationc                 óD  ‡— t          dd¦  «        }	 |d                              ¦   «         d         Š|                      t          ˆfd„|dd …         D ¦   «         ¦  «        ¦  «         |D ]}|                     ¦   «          Œd S # |D ]}|                     ¦   «          Œw xY w)Nr   r   é   c              3   óT   •K  — | ]"}|                      ¦   «         d          ‰k    V — Œ#dS ©rˆ   N©Úgetsockname©Ú.0ÚsÚports     €r   ú	<genexpr>z?TestPortAllocation.test_same_port_allocation.<locals>.<genexpr>Á   s5   øè è € ÐPÐP¸q §¢¡¤°Ô 2°dÒ :ÐPÐPÐPÐPÐPÐPr!   )r   rŒ   r   Úallr[   ©r   ÚsocketsÚsockr�   s      @r   Útest_same_port_allocationz,TestPortAllocation.test_same_port_allocation½   s¶   ø€ Ý˜q +Ñ.Ô.ˆð	Ø˜1”:×)Ò)Ñ+Ô+¨AÔ.ˆDØ�OŠO�CÐPÐPÐPÐPÀGÈAÈBÈBÄKÐPÑPÔPÑPÔPÑQÔQÐQàð ð �Ø—
’
‘”��ðð ø˜ð ð �Ø—
’
‘”��ðøøøs   “AB ÂBÚSO_REUSEPORTzSO_REUSEPORT is not supportedc                 ór  ‡— g }t          d¬¦  «        \  }Š	 t          ‰dd¬¦  «        }|                      t          ˆfd„|D ¦   «         ¦  «        ¦  «         |                     ¦   «          |D ]}|                     ¦   «          Œd S # |                     ¦   «          |D ]}|                     ¦   «          Œw xY w)NT)Ú
reuse_portr   c              3   óT   •K  — | ]"}|                      ¦   «         d          ‰k    V — Œ#dS rŠ   r‹   r�   s     €r   r‘   z5TestPortAllocation.test_reuse_port.<locals>.<genexpr>Î   s5   øè è € ÐLÐL¸q §¢¡¤°Ô 2°dÒ :ÐLÐLÐLÐLÐLÐLr!   )r   r   r   r’   r[   r“   s      @r   Útest_reuse_portz"TestPortAllocation.test_reuse_portÆ   sÑ   ø€ ð /1ˆÝ%°Ð6Ñ6Ô6‰
ˆˆdð	Ý" 4¨ÀÐFÑFÔFˆGØ�OŠO�CÐLÐLÐLÐLÀGÐLÑLÔLÑLÔLÑMÔMÐMà�JŠJ‰LŒLˆLØð ð �Ø—
’
‘”��ðð øð �JŠJ‰LŒLˆLØð ð �Ø—
’
‘”��ðøøøs   ˜A B Â/B6N)	r"   r#   r$   r–   ÚunittestÚskipIfÚhasattrr   r›   r%   r!   r   r†   r†   ¼   sd   € € € € € ðð ð ð €X„_ØˆG�F˜NÑ+Ô+Ð+Ð-Lñô ð	ð 	ñô ð	ð 	ð 	r!   r†   ))r/   rf   r   Ú
subprocessr   rk   rm   rœ   Útornado.netutilr   r   r   r   r   Útornado.testingr	   r
   r   Útornado.test.utilr   r   ÚtypingÚpycaresÚtornado.platform.caresresolverr   ÚImportErrorr   r'   r2   r4   r@   rM   rX   r]   r�   ÚplatformÚTestCaserb   ry   r|   r†   r%   r!   r   ú<module>r©      sí  ðØ €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð FÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aà €€€ð=Ø€N€N€Nð =Ð<Ð<Ð<Ð<Ð<Ð<øð ð ð ð Ø€G€G€Gðøøøð ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ñ Ôð
ð$ ðSð Sð Sð Sð S˜mñ Sô Sñ ÔðSð<ð <ð <ð
 ð+ð +ð +ð +ð +Ð-ñ +ô +ñ „ð+ð	ð 	ð 	ð 	ð 	Ð 7ñ 	ô 	ð 	ð
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð0 ðð ð ð ð Ð-ñ ô ñ „ðð	ð 	ð 	ð 	ð 	Ð 7ñ 	ô 	ð 	ð Ø€„�” Ò(Ð*MÑNÔNð&ð &ð &ð &ð & Ô!2ñ &ô &ñ OÔNñ „ð&ð6 Ø€„�˜D�Ð">Ñ?Ô?Ø€„�” Ò(Ð*VÑWÔWØ€„�” Ò)Ð+WÑXÔXð(ð (ð (ð (ð (Ð*ñ (ô (ñ YÔXñ XÔWñ @Ô?ñ „ð(ð1ð 1ð 1ð 1ð 1�HÔ%ñ 1ô 1ð 1ð"ð ð ð ð ˜Ô*ñ ô ð ð ð s   ÁA ÁAÁA