K i@RddlmZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z mZddlmZddlmZmZdd lmZmZmZdd lmZddlZej6rdd lmZdd lmZmZm Z d \Z!Z"GddeZ#GddeZ$GddejJZ&GddeZ'y))closingNFuture) bind_socketsResolver)Queue) TCPClient _Connector) TCPServer) AsyncTestCasegen_test) skipIfNoIPv6 refusing_port skipIfNonUnix) TimeoutError)IOStream)ListDictTuple)c.eZdZfdZdZfdZxZS) TestTCPServerct|g|_t|_t dd|}|j ||djd|_y)Nr localhostr) super__init__streamsrqueuer add_sockets getsocknameport)selffamilysockets __class__s a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tornado/test/tcpclient_test.pyrzTestTCPServer.__init__)sS  W q+v6 !AJ**,Q/ cp|jj||jj|yN)rappendrput)r#streamaddresss r' handle_streamzTestTCPServer.handle_stream1s$ F# vr(cdt||jD]}|jyr*)rstoprcloser#r-r&s r'r1zTestTCPServer.stop5s(  ll F LLN r()__name__ __module__ __qualname__rr/r1 __classcell__r&s@r'rr(s0r(rceZdZfdZdZdZfdZdZeddZ dZ dZ e d Z e d Zd Ze d Zd ZedZdZdZedZedZxZS) TCPClientTestcNt|d|_t|_yr*)rsetUpserverr clientr#r&s r'r<zTCPClientTest.setUp<s   k r(cNt||_|jjSr*)rr=r")r#r$s r' start_serverzTCPClientTest.start_serverAs#F+ {{r(c`|j"|jjd|_yyr*)r=r1r#s r' stop_serverzTCPClientTest.stop_serverEs( ;; " KK   DK #r(cv|jj|jt|yr*)r>r2rDrtearDownr?s r'rFzTCPClientTest.tearDownJs*   r(c|jjd}|Dchc]}|d }}tj|vr|j dyycc}w)Nc6tjddS)NrP)rresolver(r'z1TCPClientTest.skipIfLocalhostV4..Rs1C1CKQS1Tr(rz"localhost does not resolve to ipv6)io_looprun_syncsocketAF_INET6skipTest)r#addrinfoaddrfamiliess r'skipIfLocalhostV4zTCPClientTest.skipIfLocalhostV4OsS<<(()TU(01DG11 ??( * MM> ? +2s Ac#K|j|}|jj|||||}|jJ|jjj }t |5|jd|jd}|j|ddddy#1swYyxYww)N) source_ip source_portafshello) rAr>connectr=rgetrwrite read_bytes assertEqual) r#r$hostrWrXr"r- server_streamdatas r'do_test_connectzTCPClientTest.do_test_connectWs  ({{**  # +  {{&&&"kk//3355 V_ - LL "&11!44D   T8 , - - -sA3C57B5, C5B>:CcD|jtjdyN 127.0.0.1rcrOAF_INETrCs r'test_connect_ipv4_ipv4z$TCPClientTest.test_connect_ipv4_ipv4h V^^[9r(cD|jtjdyNrrgrCs r'test_connect_ipv4_dualz$TCPClientTest.test_connect_ipv4_dualkrjr(cd|j|jtjdyNz::1rUrcrOrPrCs r'test_connect_ipv6_ipv6z$TCPClientTest.test_connect_ipv6_ipv6ns"   V__e4r(cd|j|jtjdyrlrprCs r'test_connect_ipv6_dualz$TCPClientTest.test_connect_ipv6_dualss"   V__k:r(cD|jtjdyrercrO AF_UNSPECrCs r'test_connect_unspec_ipv4z&TCPClientTest.test_connect_unspec_ipv4x V--{;r(cd|j|jtjdyro)rUrcrOrvrCs r'test_connect_unspec_ipv6z&TCPClientTest.test_connect_unspec_ipv6{s$   V--u5r(cD|jtjdyrlrurCs r'test_connect_unspec_dualz&TCPClientTest.test_connect_unspec_dualrxr(c#Kt\}}|j||jt5|jj d|dddy#1swYyxYwwre)r addCleanup assertRaisesIOErrorr>r[)r# cleanup_funcr"s r'test_refused_ipv4zTCPClientTest.test_refused_ipv4sW*_ d  %   w ' 9++%%k48 8 9 9 9s4A*A A*A'#A*c||jtj|jtjddy)z8Fail when trying to use the source IP Address '8.8.8.8'.rfz8.8.8.8rWN)rrOerrorrcrhrCs r'test_source_ip_failz!TCPClientTest.test_source_ip_fails2  LL  NN   r(cH|jtjddy)z=Success when trying to use the source IP Address '127.0.0.1'.rfrNrgrCs r'test_source_ip_successz$TCPClientTest.test_source_ip_successs V^^[KPr(ctjdk(r|jd|jtj |j tjddy)z&Fail when trying to use source port 1.rootzrunning as rootrfr)rXN)getpassgetuserrQrrOrrcrhrCs r'test_source_port_failz#TCPClientTest.test_source_port_failsR ??  & MM+ ,  LL  NN   r(c#Kd}Gddt}|jt5t|j dd|dddy#1swYyxYww)Ng?ceZdZdZy);TCPClientTest.test_connect_timeout..TimeoutResolverctSr*r)r#argskwargss r'rJzCTCPClientTest.test_connect_timeout..TimeoutResolver.resolves xr(N)r4r5r6rJrKr(r'TimeoutResolverrs r(r)resolverz1.2.3.4i90)timeout)rrrr r[)r#rrs r'test_connect_timeoutz"TCPClientTest.test_connect_timeoutsc h   | , _%67??5'@    s'A$&A A$A!A$)NN)r4r5r6r<rArDrFrUr rcrirmrrqrsrwrzr|rrrrrrr7r8s@r'r:r:;s"    @-- ::55;;<66<99  Q      r(r:ceZdZdZdZy)TestConnectorSplitctjtdftdfg\}}|j|tdftdfg|j|gy)Nab)r splitAF1r_r#primary secondarys r'test_one_familyz"TestConnectorSplit.test_one_familysQ'--SzC:.FG C:Sz":; B'r(ctjtdftdftdftdfg\}}|j |tdftdfg|j |tdftdfgyNrrcd)r rrAF2r_rs r' test_mixedzTestConnectorSplit.test_mixedso'--3Z#sc3Z#s <  C:Sz":; c3Z#s$<=r(N)r4r5r6rrrKr(r'rrs ( >r(rceZdZGddZfdZfdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZxZS) ConnectorTestceZdZdZdZy)ConnectorTest.FakeStreamcd|_y)NFclosedrCs r'rz!ConnectorTest.FakeStream.__init__s DKr(cd|_y)NTrrCs r'r2zConnectorTest.FakeStream.closes DKr(N)r4r5r6rr2rKr(r' FakeStreamrs   r(rct|i|_i|_tdftdft dft dfg|_yr)rr<connect_futuresrrrrRr?s r'r<zConnectorTest.setUps@     sc3Z#sc3ZH r(c|jjD]}|j|jt|yr*)rvalues assertFalserrrFr3s r'rFzConnectorTest.tearDowns>ll))+ ,F   V]] + , r(ctj}||j|<t}||j||f<||fSr*)rrrrr)r#rYrSr-futures r' create_streamzConnectorTest.create_streamsC))+# T+1b$Z(v~r(c||jt|jjt|yr*)r_sortedrkeys)r#rs r'assert_pendingzConnectorTest.assert_pendings*  4 4 9 9 ;ConnectorTest.test_one_family_second_try_after_connect_timeoutos))C:Sz*BC f S#J' S#u- S#J' !   #s,  ((-445  T\\*A. ,,T2 , 6r(c|jtdftdfg\}}|jtdf|jtdd|jtdf|jtdd|j |j|j t |jd|j||jt|jyr) rrrrrr_rrrrrrrs r'9test_one_family_second_try_failure_before_connect_timeoutzGConnectorTest.test_one_family_second_try_failure_before_connect_timeout|s))C:Sz*BC f S#J' S#u- S#J' S#u- !  T\\*A. ,,T2 '6==1r(c |j|j\}}|jtdf|j |jtdft df|j |jjtdf|j|jjdj|jjt df|j|jjdj|j|jt|jd|j||jt |j"y)Nrrr)rrRrrrrrrrrrrr_rrrrrrs r'.test_two_family_timeout_before_connect_timeoutzrs %2 3'3HH$  )(( SI&wMwt >** >n7Mn7r(