;#-M^SSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKJ r SSK r SSK r SSK r SSKr SSKr\R "S5 SrS r\"\ R&R(\ R*R,5r"S S \5r\"\\R6S 9r\"\\R:S 9r\"\\R:S 9r"S S\R@5r!"SS\R@5r""SS\R@5r#"SS\R@5r$\%S:Xa\RL"5 gg)N)support) os_helper) socket_helper)ResourceDenied)sanepathname2urlnetworkch[S5H nU"U0UD6s $ We!Ua nUnSnAM SnAff=f)N)range)funcexcargskwargsielast_excs ;/opt/alt/python313/lib64/python3.13/test/test_urllib2net.py _retry_thricersF 1X (( ( N H  s1,1c^^UU4SjnU$)Nc$>[TT/UQ70UD6$N)r)rrr r s rwrapped(_wrap_with_retry_thrice..wrappedsT38888)r r rs`` r_wrap_with_retry_thricers 9 Nrc.\rSrSrSrSrSrSSjrSrg) TransientResource&zRaise ResourceDenied if an exception is raised while the context manager is in effect that matches the specified exception and attributes.c XlX lgr)r attrs)selfr rs r__init__TransientResource.__init__+s  rcU$rrr"s r __enter__TransientResource.__enter__/s rNcUbm[URU5(aQURR5H(upE[ X$5(d g[ X$5U:wdM( g [ S5egg)zIf type_ is a subclass of self.exc and value has attributes matching self.attrs, raise ResourceDenied. Otherwise let the exception propagate (if any).Nz%an optional resource is not available) issubclassr r!itemshasattrgetattrr)r"type_value tracebackattr attr_values r__exit__TransientResource.__exit__2sh  DHHe!)filezDidn't get expected error(s) z for  z, got z: g?) timerXrYdebugrDrErrlrrarbsubTest isinstancetuplerrHrINTERNET_TIMEOUTtime_outsocket_peer_resetioerror_peer_resetrlen TimeoutErrorprintsysstderrrMOSErrortypeassertIsInstancesleep)r"rehandlersrjrrXrrtrOr~ expected_errrubuferrmsgs rrcOtherNetworkTests._test_urlss!!.177..--x8== -gv||7L7LMGC#&c5))-0*Cl)--C"55c:"#Cg.F.FGJ!)!2!3&'ffh %oC&@ A"4"3"* );* 37'&,"4!3"3!2"* ,J!/C"7cjjIJ#"'$0#sDIs$LC 11#SII! " ;: '&s 5H?HF>FF &E1 -%E E1 F "F*H:H E.*E1 1 E?;F  F FHF%F; 8H:F; ;H> H 8H HH H H H H H/ c/n[RR5nURUR5 UR S5 UR U5 U$)N)rDrECacheFTPHandlerrC clear_cache setTimeoutappend)r"rcfhs rrd!OtherNetworkTests._extra_handlerssFnn,,. ( qrrN)T)r5r6r7r8r]rrequires_resourcerfrvrrrunittestskiprrcrdr:rrrrUrU~s7 z*6+6XZA z*A+A L]]56!7!(% NrrUc\rSrSrSrSrSrSrSrSr \ R"S5S 5r S r \ R"S5S 5r\ R"S5S 5rS rg) TimeoutTesti%cVUR[RR5 gr)rCrDrErFr&s rr]TimeoutTest.setUp&s 112rcUR[R"55 [Rn[ R "USS9 [U5nURUR5 URURRRR55 SSS5 g!,(df  g=fNtimeout) assertIsNonesocketgetdefaulttimeoutrrGrrHrIrCrMrJraw_sock gettimeoutr"rOus rtest_http_basicTimeoutTest.test_http_basic*s~ &2245##  - -c4 @#C(A OOAGG $   addhhnn779 :A @ @s A$B77 Cc$UR[R"55 [Rn[ R "U5 [R"S5 [U5nURUR5 [R"S5 URURRRR5S5 SSS5 g![R"S5 f=f!,(df  g=fN<)rrrrrGrrHsetdefaulttimeoutrIrCrMr{rJrrrrs rtest_http_default_timeout%TimeoutTest.test_http_default_timeout2s &2245##  - -c 2  $ $R ( /',(((.   QTTXX^^668" =3 2 ((. 3 2s% D#&C& AD&C>>D Dc UR[R"55 [Rn[ R "U5 [R"S5 [USS9nURUR5 [R"S5 URURRRR55 SSS5 g![R"S5 f=f!,(df  g=fNrr)rrrrrGrrHrrIrCrMrJrrrrs rtest_http_no_timeout TimeoutTest.test_http_no_timeout>s &2245##  - -c 2  $ $R ( /'T:(((.   addhhnn779 :3 2 ((. 3 2s% C?#%C$AC?$C<<C?? D cJ[Rn[R"U5 [ USS9nUR UR 5 URURRRR5S5 SSS5 g!,(df  g=f)Nxr) rrGrrHrIrCrMr{rJrrrrs rtest_http_timeoutTimeoutTest.test_http_timeoutJsh##  - -c 2#C5A OOAGG $   QTTXX^^668# >3 2 2s A$B B"zftp://www.pythontest.net/r_cUR[R"55 [R"UR SS9 [ UR 5nURUR5 URURRRRR55 SSS5 g!,(df  g=fr) rrrrrHFTP_HOSTrIrCrMrJrrrr"rs rtest_ftp_basicTimeoutTest.test_ftp_basicSs &2245  - -dmmT J#DMM2A OOAGG $   addggkk//::< =K J Js A8C Cc@UR[R"55 [R"UR 5 [R "S5 [UR 5nURUR5 [R "S5 URURRRRR5S5 SSS5 g![R "S5 f=f!,(df  g=fr)rrrrrHrrrIrCrMr{rJrrrrs rtest_ftp_default_timeout$TimeoutTest.test_ftp_default_timeout[s &2245  - -dmm <  $ $R ( /' 6(((.   QTTWW[[..99;R @= < ((. = A OOAGG $   QTTWW[[..99;R @= <  ;?+H z*>+> A z* >+ > z*A+Arr__main__)'r;rtestr test.supportrrrtest.test_urllib2rrnr urllib.errorrDurllib.requestrrequiresrrrErtrarbrIobjectrr ETIMEDOUTr ECONNRESETrrTestCaser=r@rUrr5mainrrrrs "&'.  .fnn.D.D.4ll.C.CENN8 WEOO <%gU5E5EF&we6F6FG1!!1N)h'') d))dNRA(##RAj z MMOr