§
    ‹Ÿj  ã                   óà   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ d dlmZ  G d	„ d
e¦  «        Ze G d„ dej        ¦  «        ¦   «         ZdS )é    N)Úgen)ÚIOStream)Úapp_log)Ú	TCPServer)ÚskipIfNonUnix)ÚAsyncTestCaseÚ	ExpectLogÚbind_unused_portÚgen_test)ÚTuplec                   óV   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         ZdS )ÚTCPServerTestc              #   óœ  K  —  G d„ dt           ¦  «        }d x}}	 t          ¦   «         \  }} |¦   «         }|                     |¦  «         t          t	          j        ¦   «         ¦  «        }t          t          d¦  «        5  |                     d|f¦  «        V — |                     d¦  «        V — | 	                    ¦   «         V — t          j        V — d d d ¦  «         n# 1 swxY w Y   |�|                     ¦   «          |�|                     ¦   «          d S d S # |�|                     ¦   «          |�|                     ¦   «          w w xY w)Nc                   ó.   — e Zd Zej        d„ ¦   «         ZdS )úFTCPServerTest.test_handle_stream_coroutine_logging.<locals>.TestServerc              3   ó„   K  — |                      t          d¦  «        ¦  «        V — |                     ¦   «          ddz   d S )Nó   helloé   r   )Ú
read_bytesÚlenÚclose©ÚselfÚstreamÚaddresss      úh/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/tcpserver_test.pyÚhandle_streamzTTCPServerTest.test_handle_stream_coroutine_logging.<locals>.TestServer.handle_stream   s@   è è € à×'Ò'­¨H©¬Ñ6Ô6Ð6Ð6Ð6Ø—’‘”�Ø�A‘���ó    N©Ú__name__Ú
__module__Ú__qualname__r   Ú	coroutiner   © r   r   Ú
TestServerr      s/   € € € € € ØŒ]ðð ñ Œ]ðð ð r   r%   zException in callbackÚ	localhostr   )r   r
   Ú
add_socketr   Úsocketr	   r   ÚconnectÚwriteÚread_until_closer   ÚmomentÚstopr   )r   r%   ÚserverÚclientÚsockÚports         r   Ú$test_handle_stream_coroutine_loggingz2TCPServerTest.test_handle_stream_coroutine_logging   sª  è è € ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð Ðˆ�ð	Ý)Ñ+Ô+‰JˆD�$Ø�Z‘\”\ˆFØ×Ò˜dÑ#Ô#Ð#Ý�fœm™oœoÑ.Ô.ˆFÝ�7Ð$;Ñ<Ô<ð !ð !Ø—n’n k°4Ð%8Ñ9Ô9Ð9Ð9Ð9Ø—l’l 8Ñ,Ô,Ð,Ð,Ð,Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/Ý”jÐ Ð Ð ð	!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ð!Ø—’‘”�ØÐ!Ø—’‘”���ð "Ð!øð Ð!Ø—’‘”�ØÐ!Ø—’‘”��ð "øøøs1   ›A%D Â AC!ÃD Ã!C%Ã%D Ã(C%Ã)D Ä/Ec              #   óª  K  —  G d„ dt           ¦  «        }t          ¦   «         \  }} |¦   «         }|                     |¦  «         t          t	          j        ¦   «         ¦  «        }|                     d|f¦  «        V — |                     ¦   «         V —}|                      |d¦  «         |                     ¦   «          | 	                    ¦   «          d S )Nc                   ó   — e Zd Zd„ ZdS )úETCPServerTest.test_handle_stream_native_coroutine.<locals>.TestServerc              “   ó\   K  — |                      d¦  «         |                     ¦   «          d S )Nó   data)r*   r   r   s      r   r   zSTCPServerTest.test_handle_stream_native_coroutine.<locals>.TestServer.handle_stream3   s)   è è € Ø—’˜WÑ%Ô%Ð%Ø—’‘”���r   N)r    r!   r"   r   r$   r   r   r%   r5   2   s#   € € € € € ðð ð ð ð r   r%   r&   r7   )
r   r
   r'   r   r(   r)   r+   ÚassertEqualr-   r   )r   r%   r0   r1   r.   r/   Úresults          r   Ú#test_handle_stream_native_coroutinez1TCPServerTest.test_handle_stream_native_coroutine.   sÛ   è è € ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	õ
 &Ñ'Ô'‰
ˆˆdØ�‘”ˆØ×Ò˜$ÑÔÐÝ�&œ-™/œ/Ñ*Ô*ˆØ�nŠn˜k¨4Ð0Ñ1Ô1Ð1Ð1Ð1Ø×.Ò.Ñ0Ô0Ð0Ð0ˆØ×Ò˜ Ñ)Ô)Ð)Ø�Š‰ŒˆØ�Š‰Œˆˆˆr   c                 ó¾   — t          ¦   «         \  }}t          ¦   «         }|                     |¦  «         |                     ¦   «          |                     ¦   «          d S ©N)r
   r   r'   r-   )r   r0   r1   r.   s       r   Útest_stop_twicezTCPServerTest.test_stop_twiceA   sL   € Ý%Ñ'Ô'‰
ˆˆdÝ‘”ˆØ×Ò˜$ÑÔÐØ�Š‰ŒˆØ�Š‰Œˆˆˆr   c              #   ó6  ‡‡‡	‡
K  —  G ˆ	fd„dt           ¦  «        }t          ¦   «         \  }} |¦   «         Š	‰	                     |¦  «         d|fŠ
d}d„ t          |¦  «        D ¦   «         }g Št          j        ˆˆ
fd„¦   «         Šˆfd„|D ¦   «         V — |                      t          ‰¦  «        dd	¦  «         	 t          ‰¦  «        |k    r|                      d
¦  «         ‰D ]}| 	                    ¦   «          Œd S # ‰D ]}| 	                    ¦   «          Œw xY w)Nc                   ó4   •— e Zd Zej        ˆ fd„¦   «         ZdS )ú7TCPServerTest.test_stop_in_callback.<locals>.TestServerc              3   ó`   •K  — ‰                      ¦   «          |                     ¦   «         V — d S r<   )r-   r+   )r   r   r   r.   s      €r   r   zETCPServerTest.test_stop_in_callback.<locals>.TestServer.handle_streamO   s2   øè è € à—’‘”�Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/r   Nr   )r.   s   €r   r%   r@   N   s:   ø€ € € € € ØŒ]ð0ð 0ð 0ð 0ñ Œ]ð0ð 0ð 0r   r%   r&   é(   c                 óN   — g | ]"}t          t          j        ¦   «         ¦  «        ‘Œ#S r$   )r   r(   )Ú.0Úis     r   ú
<listcomp>z7TCPServerTest.test_stop_in_callback.<locals>.<listcomp>Y   s&   € Ð?Ð?Ð?°•8�FœM™OœOÑ,Ô,Ð?Ð?Ð?r   c              3   óˆ   •K  — 	 |                       ‰¦  «        V — ‰                     | ¦  «         d S # t          $ r Y d S w xY wr<   )r)   ÚappendÚOSError)ÚcÚconnected_clientsÚserver_addrs    €€r   r)   z4TCPServerTest.test_stop_in_callback.<locals>.connect\   sd   øè è € ð,Ø—i’i Ñ,Ô,Ð,Ð,Ð,ð "×(Ò(¨Ñ+Ô+Ð+Ð+Ð+øõ ð ð ð Ø��ðøøøs   …3 ³
AÁ Ac                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r$   r$   )rD   rJ   r)   s     €r   rF   z7TCPServerTest.test_stop_in_callback.<locals>.<listcomp>e   s!   ø€ Ð+Ð+Ð+˜aˆwˆw�q‰zŒzÐ+Ð+Ð+r   r   zall clients failed connectingzHat least one client should fail connecting for the test to be meaningful)
r   r
   r'   Úranger   r#   ÚassertGreaterr   ÚskipTestr   )r   r%   r0   r1   ÚNÚclientsrJ   r)   rK   r.   rL   s          @@@@r   Útest_stop_in_callbackz#TCPServerTest.test_stop_in_callbackH   s‘  øøøøè è € ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0�ñ 	0ô 	0ð 	0õ &Ñ'Ô'‰
ˆˆdØ�‘”ˆØ×Ò˜$ÑÔÐØ" DÐ)ˆØˆØ?Ð?µe¸A±h´hÐ?Ñ?Ô?ˆØÐå	Œð	,ð 	,ð 	,ð 	,ð 	,ñ 
Œð	,ð ,Ð+Ð+Ð+ 7Ð+Ñ+Ô+Ð+Ð+Ð+à×Ò�3Ð0Ñ1Ô1°1Ð6UÑVÔVÐVð
	ÝÐ$Ñ%Ô%¨Ò*Ð*ð —’ð4ñô ð ð
 'ð ð �Ø—’‘	”	�	�	ðð øÐ&ð ð �Ø—’‘	”	�	�	ðøøøs   Â:(C= Ã=DN)r    r!   r"   r   r2   r:   r=   rS   r$   r   r   r   r      sr   € € € € € Øðð ñ „Xðð6 ðð ñ „Xðð$ð ð ð ð)ð )ñ „Xð)ð )ð )r   r   c                   óF   — e Zd Zdedeeef         fd„Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestMultiprocessÚcodeÚreturnc           	      óê   — 	 t          j        t          j        dgd|dd¬¦  «        }n?# t           j        $ r-}t          d|j        › d|j        › d|j        › �¦  «        |‚d }~ww xY w|j        |j        fS )Nz-Werror::DeprecationWarningTÚutf8)Úcapture_outputÚinputÚencodingÚcheckzProcess returned z stdout=z stderr=)	Ú
subprocessÚrunÚsysÚ
executableÚCalledProcessErrorÚRuntimeErrorÚ
returncodeÚstdoutÚstderr)r   rV   r9   Úes       r   Úrun_subproczTestMultiprocess.run_subproc~   s¡   € ð	Ý”^Ý”Ð!>Ð?Ø#ØØØðñ ô ˆFˆFøõ Ô,ð 	ð 	ð 	ÝØV A¤LÐVÐV¸!¼(ÐVÐVÈAÌHÐVÐVñô àðøøøøð	øøøð Œ}˜fœmÐ+Ð+s   ‚%( ¨A$·(AÁA$c                 óö   — t          j        d¦  «        }|                      |¦  «        \  }}|                      d                     t          |¦  «        ¦  «        d¦  «         |                      |d¦  «         d S )Na  
            import asyncio
            from tornado.tcpserver import TCPServer

            async def main():
                server = TCPServer()
                server.listen(0, address='127.0.0.1')

            asyncio.run(main())
            print('012', end='')
        Ú Ú012©ÚtextwrapÚdedentrh   r8   ÚjoinÚsorted©r   rV   ÚoutÚerrs       r   Útest_listen_singlez#TestMultiprocess.test_listen_single�   sw   € õ Œð
ñ
ô 
ˆð ×#Ò# DÑ)Ô)‰ˆˆSØ×Ò˜Ÿš¥¨¡¤Ñ-Ô-¨uÑ5Ô5Ð5Ø×Ò˜˜bÑ!Ô!Ð!Ð!Ð!r   c                 óö   — t          j        d¦  «        }|                      |¦  «        \  }}|                      d                     t          |¦  «        ¦  «        d¦  «         |                      |d¦  «         d S )NaÀ  
            import warnings

            from tornado.ioloop import IOLoop
            from tornado.process import task_id
            from tornado.tcpserver import TCPServer

            warnings.simplefilter("ignore", DeprecationWarning)

            server = TCPServer()
            server.bind(0, address='127.0.0.1')
            server.start(3)
            IOLoop.current().run_sync(lambda: None)
            print(task_id(), end='')
        rj   rk   rl   rq   s       r   Útest_bind_startz TestMultiprocess.test_bind_start¡   óu   € ÝŒðñ
ô 
ˆð" ×#Ò# DÑ)Ô)‰ˆˆSØ×Ò˜Ÿš¥¨¡¤Ñ-Ô-¨uÑ5Ô5Ð5Ø×Ò˜˜bÑ!Ô!Ð!Ð!Ð!r   c                 óö   — t          j        d¦  «        }|                      |¦  «        \  }}|                      d                     t          |¦  «        ¦  «        d¦  «         |                      |d¦  «         d S )Na  
            import asyncio
            from tornado.netutil import bind_sockets
            from tornado.process import fork_processes, task_id
            from tornado.ioloop import IOLoop
            from tornado.tcpserver import TCPServer

            sockets = bind_sockets(0, address='127.0.0.1')
            fork_processes(3)
            async def post_fork_main():
                server = TCPServer()
                server.add_sockets(sockets)
            asyncio.run(post_fork_main())
            print(task_id(), end='')
        rj   rk   rl   rq   s       r   Útest_add_socketsz!TestMultiprocess.test_add_sockets·   rw   r   c                 óö   — t          j        d¦  «        }|                      |¦  «        \  }}|                      d                     t          |¦  «        ¦  «        d¦  «         |                      |d¦  «         d S )NaÍ  
            import asyncio
            import socket
            from tornado.netutil import bind_sockets
            from tornado.process import task_id, fork_processes
            from tornado.tcpserver import TCPServer

            # Pick an unused port which we will be able to bind to multiple times.
            (sock,) = bind_sockets(0, address='127.0.0.1',
                family=socket.AF_INET, reuse_port=True)
            port = sock.getsockname()[1]

            fork_processes(3)

            async def main():
                server = TCPServer()
                server.listen(port, address='127.0.0.1', reuse_port=True)
            asyncio.run(main())
            print(task_id(), end='')
            rj   rk   rl   rq   s       r   Útest_listen_multi_reuse_portz-TestMultiprocess.test_listen_multi_reuse_portÍ   su   € ÝŒðñ
ô 
ˆð, ×#Ò# DÑ)Ô)‰ˆˆSØ×Ò˜Ÿš¥¨¡¤Ñ-Ô-¨uÑ5Ô5Ð5Ø×Ò˜˜bÑ!Ô!Ð!Ð!Ð!r   N)
r    r!   r"   Ústrr   rh   rt   rv   ry   r{   r$   r   r   rU   rU   w   sz   € € € € € ð, ð ,¨¨c°3¨h¬ð ,ð ,ð ,ð ,ð"ð "ð "ð("ð "ð "ð,"ð "ð "ð,"ð "ð "ð "ð "r   rU   )r(   r^   r`   rm   ÚunittestÚtornador   Útornado.iostreamr   Útornado.logr   Útornado.tcpserverr   Útornado.test.utilr   Útornado.testingr   r	   r
   r   Útypingr   r   ÚTestCaserU   r$   r   r   ú<module>r†      sE  ðØ €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø +Ð +Ð +Ð +Ð +Ð +Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ Pà Ð Ð Ð Ð Ð ðað að að að a�Mñ aô að aðL ðn"ð n"ð n"ð n"ð n"�xÔ(ñ n"ô n"ñ „ðn"ð n"ð n"r   