
    0hh}%                     H   S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SKrS SK	r	S SK
rS SKrS SKrS SKrS SKr\R"                  " S5         " S S\ R$                  5      r " S	 S
\ R$                  \5      r " S S\ R$                  5      r\S:X  a  \ R.                  " 5         gg)    N)support)	os_helper)socket_helper)ExtraAssertionsnetworkc                   &    \ rS rSrS rS rS rSrg)URLTimeoutTest   c                 L    [         R                  " [        R                  5        g N)socketsetdefaulttimeoutr   INTERNET_TIMEOUTselfs    </opt/python-3.13.8/usr/lib/python3.13/test/test_urllibnet.pysetUpURLTimeoutTest.setUp   s      !9!9:    c                 0    [         R                  " S 5        g r   )r   r   r   s    r   tearDownURLTimeoutTest.tearDown   s      &r   c                    U R                  [        R                  R                  5        [        R                  R                  [        R                  5      R                  n[        R                  " U5         [        R                  R                  [        R                  5      nUR                  5         S S S 5        g ! , (       d  f       g = fr   )
addCleanupurllibrequest
urlcleanupparseurlparser   TEST_HTTP_URLnetlocr   transient_interneturlopenread)r   domainfs      r   testURLreadURLTimeoutTest.testURLread   su    112&&w'<'<=DD--f5&&w'<'<=AFFH 655s   7>B>>
C N)__name__
__module____qualname____firstlineno__r   r   r'   __static_attributes__r)   r   r   r	   r	      s    ;'r   r	   c                       \ rS rSrSrS r\R                  S 5       rS r	S r
S rS rS	 r\R                  " S
5      S 5       rSrg)urlopenNetworkTests&   http://www.pythontest.net/c                 V    U R                  [        R                  R                  5        g r   r   r   r   r   r   s    r   r   urlopenNetworkTests.setUp7       112r   c              /     #    US   n[         R                  " U5         [        R                  R                  " U0 UD6n Uv   UR                  5          S S S 5        g ! UR                  5         f = f! , (       d  f       g = f7fNr   )r   r"   r   r   r#   close)r   argskwargsresourcers        r   r#   urlopenNetworkTests.urlopen;   se     7--h7&&77A	 87
 	 87s4   B!A3 AA3	BA00A33
B=Bc                     U R                  U R                  5       nS H  nU R                  X5        M     U R                  UR	                  5       S5        S S S 5        g ! , (       d  f       g = f)N)r$   readline	readlinesfilenor9   infogeturlzcalling 'read' failed)r#   urlassertHasAttr
assertTruer$   )r   open_urlattrs      r   
test_basicurlopenNetworkTests.test_basicE   sQ    \\$((#x+""82+ OOHMMO-DE	 $##s   ;A  
A.c                    U R                  U R                  5       nU R                  UR                  5       [        S5        U R                  UR                  5       [        S5        S S S 5        g ! , (       d  f       g = f)Nz readline did not return a stringzreadlines did not return a list)r#   rE   assertIsInstancer@   bytesrA   list)r   rH   s     r   test_readlines"urlopenNetworkTests.test_readlinesM   s^    \\$((#x!!("3"3"5u"DF!!("4"4"6"CE $##s   AA00
A>c                 $   U R                  U R                  5       nUR                  5       nU R                  U[        R
                  R                  S5        U R                  UR                  5       S5        S S S 5        g ! , (       d  f       g = f)NzEobject returned by 'info' is not an instance of email.message.Messagehtml)	r#   rE   rC   rM   emailmessageMessageassertEqualget_content_subtype)r   rH   info_objs      r   	test_infourlopenNetworkTests.test_infoU   si    \\$((#x}}H!!(EMM,A,A#FG X99;VD $##s   AB
Bc                     U R                  U R                  5       nUR                  5       nU R                  X R                  5        S S S 5        g ! , (       d  f       g = fr   )r#   rE   rD   rW   )r   rH   
gotten_urls      r   test_geturlurlopenNetworkTests.test_geturl^   s>    \\$((#x!*JZ2 $##s   ,A
Ac                    U R                   S-   n[        R                  " U5         U R                  [        5         [
        R                  R                  5       R                  U5      nS S S 5         WR                  5       nUR                  5         U R                  US5        S S S 5        g ! , (       d  f       NJ= f! WR                  5         f = f! , (       d  f       g = f)NXXXinvalidXXXi  )rE   r   r"   assertWarnsDeprecationWarningr   r   FancyURLopeneropengetcoder9   rW   )r   URLrH   codes       r   test_getcode urlopenNetworkTests.test_getcoded   s    hh(--c2!!"45!>>88:??D 6!'') T3' 3255
   32s:   C.B.*C3B?"C.
B<	8C?CC
C"walltimec                 :   Sn [         R                  " U5        U R                  SU-  5        SnU R	                  [        US9   [
        R                  R                  SR                  U5      5        S S S 5        g ! [         a     NZf = f! , (       d  f       g = f)Nzsadflkjsasf.i.nvali.d.z&%r should not resolve for test to workzuopening an invalid URL did not raise OSError; can be caused by a broken DNS server (e.g. returns 404 or hijacks page)msgz
http://{}/)	r   gethostbynameskipTestOSErrorassertRaisesr   r   r#   format)r   bogus_domainfailure_explanations      r   test_bad_address$urlopenNetworkTests.test_bad_addressp   s    , 0		S  . MMB\QR D w,?@NN""<#6#6|#DE A@  	 		 A@s   A< /B<
B	B	
Br)   N)r*   r+   r,   r-   rE   r   
contextlibcontextmanagerr#   rJ   rP   rZ   r^   ri   r   requires_resourcerv   r.   r)   r   r   r0   r0   &   se     'C3  FEE3
( z*$F +$Fr   r0   c                       \ rS rSrS r\R                  S 5       rS rS r	S r
Sr\R                  " S5      S	 5       rS
 rSrg)urlretrieveNetworkTests   c                 V    U R                  [        R                  R                  5        g r   r4   r   s    r   r   urlretrieveNetworkTests.setUp   r6   r   c              /   *  #    US   n[         R                  " U5         [        R                  R                  " U0 UD6u  pE XE4v   [
        R                  " U5         S S S 5        g ! [
        R                  " U5        f = f! , (       d  f       g = f7fr8   )r   r"   r   r   urlretriever   unlink)r   r:   r;   r<   file_locationrC   s         r   r   #urlretrieveNetworkTests.urlretrieve   sv     7--h7"(.."<"<d"Mf"MM0#))  / 87
   / 87s4   B#BA'B	B'A??B
BBc                 \   U R                  U R                  5       u  pU R                  [        R                  R                  U5      S5        [        US5       nU R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz9file location returned by urlretrieve is not a valid pathrbz=reading from the file location returned by urlretrieve failed)r   logorG   ospathexistsre   r$   r   r   rC   r&   s       r   rJ   "urlretrieveNetworkTests.test_basic   s~    dii(,A]OOBGGNN=9 <? @mT*a +9 : + )( +* )(s#   >B!B;B
B	B
B+c                    U R                  U R                  [        R                  5       u  pU R	                  U[        R                  5        U R                  [        R                  R                  U5      5        [        US5       nU R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   z"reading from temporary file failed)r   r   r   TESTFNrW   rG   r   r   r   re   r$   r   s       r   test_specified_path+urlretrieveNetworkTests.test_specified_path   s    dii'..03HM]I,<,<=OOBGGNN=9:mT*a*NO +	0 0 +*	0 0s$   AC!B:)C:
C	C
Cc                     U R                  U R                  5       u  pU R                  U[        R                  R
                  S5        S S S 5        g ! , (       d  f       g = f)Nz0info is not an instance of email.message.Message)r   r   rM   rT   rU   rV   )r   r   rC   s      r   test_header#urlretrieveNetworkTests.test_header   sE    dii(,A]!!$(=(="TV )((s   .A
A!r2   rk   c                    U R                  U R                  5       u  pUR                  S5      nSn [        R                  " X45        S S S 5        g ! [
         a    U R                  SU-  5         N)f = f! , (       d  f       g = f)NDatez%a, %d %b %Y %H:%M:%S GMTzDate value not in %r format)r   r   gettimestrptime
ValueErrorfail)r   r   fileheaders	datevalue
dateformats        r   test_data_header(urlretrieveNetworkTests.test_data_header   st    dii(,H]#/I4JFi4	 )(
  F		7*DEF )(s(   A6AA30A62A33A66
Bc                 `  ^	 / m	U	4S jnU R                  U R                  US9 u  p#[        US   5      nS S S 5        [        T	5      nU R	                  [        T	5      SSS9  U R                  T	S   S   S5        U R	                  T	S   S   SSU-  S9  U R                  T	S   S	   W5        U R                  T	S
   S	   U5        T	 VVs1 s H  u  pgogiM	     nnnU R                  T	S   S   1USU-  S9  U R                  T	S
   S   T	S   S   -  USU-  S9  g ! , (       d  f       N= fs  snnf )Nc                 ,   > TR                  XU45        g r   )append)blocks
block_size
total_sizerecordss      r   recording_reporthookEurlretrieveNetworkTests.test_reporthook.<locals>.recording_reporthook   s    NNF
;<r   )
reporthookzContent-Length   zKThere should always be two calls; the first one before the transfer starts.rm   r   zblock size can't be 0 in %s   zblock sizes in %s must be equalz9number of blocks * block size must be >= total size in %s)r   r   intreprassertGreaterlenrW   assertGreaterEqual)
r   r   r   r   expected_sizerecords_repr_r   block_sizesr   s
            @r   test_reporthook'urlretrieveNetworkTests.test_reporthook   sn   	= dii4HI N,,< =>M J G}3w< 1N 	OA*71:a=!<|K 	 	MA6Q7:AB'&6aQz'B'!*Q-+>M 	 	OAwqz!} <m%79E%F 	  	G! JI Cs   D	D*
D'r)   N)r*   r+   r,   r-   r   rx   ry   r   rJ   r   r   r   r   rz   r   r   r.   r)   r   r   r|   r|      s^    3 0 0:PV (Dz*F +FGr   r|   __main__)unittesttestr   test.supportr   r   test.support.testcaser   rx   r   urllib.parser   urllib.requestr   email.messagerT   r   requiresTestCaser	   r0   r|   r*   mainr)   r   r   <module>r      s      " & 1     	      X&& &oF(++_ oFdMGh// MG` zMMO r   