K i~ ,ddlZddlZddlZddlmZddlZddlZddlZddlm Z m Z m Z m Z m Z ddlmZmZmZddlmZmZddlZ ddlZddlmZeGddeZeGd d eZd ZeGd d eZGddeZGddeZeGddeZ GddeZ!eejDejFdk(dGddejHZ%eejDedudejDejFdk(dejDejFdk(dGddeZ&Gd d!ejHZ'Gd"d#ejHZ(y#e$rdZYDwxYw)$N)Popen)BlockingResolverOverrideResolverThreadedResolver is_valid_ip bind_sockets) AsyncTestCasegen_testbind_unused_port)skipIfNoNetworkabstract_base_test) CaresResolverc eZdZdZedZy)_ResolverTestMixinNc#K|jjddtj}|j tj df|vxstj df|vd|yw)N localhostP) 127.0.0.1r)::1rzloopback address not found in )resolverresolvesocket AF_UNSPEC assertTrueAF_INETAF_INET6)selfaddrinfos _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tornado/test/netutil_test.pytest_localhostz!_ResolverTestMixin.test_localhost!sg..{B@P@PQQ nn/ 0H < <+.(:,XJ 7 sA,A.)__name__ __module__ __qualname__rr r rrrsH     r%rc eZdZdZedZy)_ResolverErrorTestMixinNc#K|jt5|jjddtj dddy#1swYyxYww)Nzan invalid domainr) assertRaisesIOErrorrrrrrs r test_bad_hostz%_ResolverErrorTestMixin.test_bad_host4sL   w ' S--''(;RAQAQR R S S SsA.A AAA)r!r"r#rr r,r$r%rr'r'0sH SSr%r'cJtjtjd)z4Dummy implementation of getaddrinfo for use in mockszmock: lookup failed)rgaierrorerrnoEIO)argss r_failing_getaddrinfor2:s //%))%: ;;r%ceZdZfdZxZS)BlockingResolverTestc@t|t|_yN)supersetUprrr __class__s rr8zBlockingResolverTest.setUpA  (* r%r!r"r#r8 __classcell__r:s@rr4r4?s ++r%r4c(eZdZfdZfdZxZS)BlockingResolverErrorTestct|t|_tj |_tt_yr6r7r8rrr getaddrinforeal_getaddrinfor2r9s rr8zBlockingResolverErrorTest.setUpJ,  (* & 2 21r%cL|jt_t|yr6rDrrCr7tearDownr9s rrHz"BlockingResolverErrorTest.tearDownP!22 r%r!r"r#r8rHr=r>s@rr@r@I2 r%r@c.eZdZfdZedZxZS)OverrideResolverTestct|ddddtjfdddtjfdi}t t ||_y)N) google.comrz1.2.3.4rrOr) 2a02:6b8:7c:40c:c51e:495f:e23a:3r)r7r8rrrrrr)rmappingr:s rr8zOverrideResolverTest.setUpVsO    2v~~ . 2v /2 ))9);WE r%c#HK|jjddtj}|j tjdf||jjddtj }|j tj df|yw)NrOrrP)rQrrr)rrrrassertInr)rresults rtest_resolve_multiaddrz+OverrideResolverTest.test_resolve_multiaddrbsv}},,\2v~~NN v~~7@}},,\2vOO __L Mv sB B")r!r"r#r8r rVr=r>s@rrMrMUs F  r%rMc(eZdZfdZfdZxZS)ThreadedResolverTestc@t|t|_yr6)r7r8rrr9s rr8zThreadedResolverTest.setUpor;r%cV|jjt| yr6)rcloser7rHr9s rrHzThreadedResolverTest.tearDownss  r%rJr>s@rrXrXms+r%rXc(eZdZfdZfdZxZS)ThreadedResolverErrorTestct|t|_tj |_tt_yr6rBr9s rr8zThreadedResolverErrorTest.setUpyrEr%cL|jt_t|yr6rGr9s rrHz"ThreadedResolverErrorTest.tearDownrIr%rJr>s@rr]r]xrKr%r]win32z!preexec_fn not available on win32ceZdZdZy)ThreadedResolverImportTestcxdtjddg}tj}t|fd}tj|z krU|j }||j d|ytj dtj|z krU|jdy) Nz-cz'import tornado.test.resolve_test_helperc.tjSr6)signalalarm)TIMEOUTsrz8ThreadedResolverImportTest.test_import..s&,,w2Gr%) preexec_fnrg?zimport timed out)sys executabletimerpoll assertEqualsleepfail)rcommandstartpopen return_coderhs @r test_importz&ThreadedResolverImportTest.test_imports >>4)RS g*GHiikE!G+**,K&  K0 JJt  iikE!G+ $%r%N)r!r"r#rvr$r%rrbrbs&r%rbzpycares module not presentz*pycares doesn't return loopback on windowsdarwinz*pycares doesn't return 127.0.0.1 on darwinceZdZfdZxZS)CaresResolverTestc@t|t|_yr6)r7r8rrr9s rr8zCaresResolverTest.setUps  % r%r<r>s@rryrys ((r%ryceZdZdZy) IsValidIPTestc|jtd|jtd|jtd|jtd|jtd|jtd|jtd|jtd|jtd |jtd |jtd |jtd |jtd y)Nrz4.4.4.4rz2620:0:1cfe:face:b00c::3zwww.google.comrz4.4.4.4?@ %567 [12 Z01 \23 R) S)* T*+ V,- Y/0r%N)r!r"r#rr$r%rr|r|s 1r%r|cTeZdZdZej eed ddZy)TestPortAllocationctdd} |djd|jtfd|ddD|D]}|j y#|D]}|j wxYw)Nrrc3JK|]}|jdk(ywrN getsockname.0sports r z?TestPortAllocation.test_same_port_allocation..s!Pq  2d :P #)rrrallr[rsocketssockrs @rtest_same_port_allocationz,TestPortAllocation.test_same_port_allocationsyq+. 1:))+A.D OOCPGABKPP Q      s .s!Lq  2d :Lr)r rrrr[rs @rtest_reuse_portz"TestPortAllocation.test_reuse_ports/1%6 d "4FG OOCLGLL M JJL    JJL   s 1A--)BN) r!r"r#runittestskipIfhasattrrrr$r%rrrs6X__ FN ++-L  r%r))r/rfr subprocessrrkrmrtornado.netutilrrrrrtornado.testingr r r tornado.test.utilr r typingpycarestornado.platform.caresresolverr ImportErrorrr'r2r4r@rMrXr]rplatformTestCaserbryr|rr$r%rrs  FEA ==      $SmSS< +-++  7  - 0-  7 (*MN&!2!2&O&6D">?(*VW)+WX(*(YX@( 1H%%1"**KGsFFF