
    <e                         d Z ddlZddlZddlZddlZddlmZ ej        r ej	        d           G d dej
                  Zedk    r ej                     dS dS )z'Unit tests for code in urllib.response.    N)supportzCannot create socket on WASIc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestResponsec                     t          j         t           j        t           j                  | _        | j                            d          | _        ddd| _        d S )Nrbzwww.python.orgclose)Host
Connection)socketAF_INETSOCK_STREAMsockmakefilefptest_headersselfs    0/usr/lib/python3.11/test/test_urllib_response.pysetUpzTestResponse.setUp   sL    M&.&2DEE	)$$T**%5+24 4    c                 `   t           j                            | j                  |                     t
          j                   fd}|                     | j        j                    |             | 	                    | j        j                   | 
                    t          |           d S )Nc                  @    5 } 	 d d d            d S # 1 swxY w Y   d S N )spamaddbases    r   fz!TestResponse.test_with.<locals>.f   sm     D                 s   )urllibresponser   r   assertIsInstancetempfile_TemporaryFileWrapperassertFalseclosed
assertTrueassertRaises
ValueError)r   r   r   s     @r   	test_withzTestResponse.test_with   s    /))$'22gx'EFFF	 	 	 	 	 	(((	'''*a(((((r   c                     dfd}t           j                            | j        |          }|                                 |                     | j        j                   |                                d S )NFc                      d d S )NTr   )closehook_calleds   r   	closehookz1TestResponse.test_addclosehook.<locals>.closehook%   s    #r   )r   r   addclosehookr   r   r%   r$   )r   r,   r+   s     @r   test_addclosehookzTestResponse.test_addclosehook"   s|     	$ 	$ 	$ 	$ 	$ O00)DD	'''()))))r   c                     t           j                            | j        | j                  }|                     |                                | j                   |                     |j        | j                   d S r   )r   r   addinfor   r   assertEqualinfoheaders)r   r2   s     r   test_addinfozTestResponse.test_addinfo/   s`    &&tw0ABBd&7888t'899999r   c                    d}d}t           j                            | j        | j        ||          }|                     |                                | j                   |                     |                                |           |                     |                                |           |                     |j	        | j                   |                     |j
        |           |                     |j        |           d S )Nzhttp://www.python.org   )r   r   
addinfourlr   r   r1   r2   geturlgetcoder3   urlstatus)r   r:   codeinfourls       r   test_addinfourlzTestResponse.test_addinfourl4   s    %/,,TWd6G-0$8 8):;;;))3///**D111$*;<<<c***.....r   c                 8    | j                                          d S r   )r   r   r   s    r   tearDownzTestResponse.tearDown@   s    	r   N)	__name__
__module____qualname__r   r(   r.   r4   r>   r@   r   r   r   r   r      sn        4 4 4) ) )* * *: : :

/ 
/ 
/    r   r   __main__)__doc__r   r!   urllib.responser   unittesttestr   is_wasiSkipTestTestCaser   rA   mainr   r   r   <module>rM      s    - -             
? <
(
:
;
;;4 4 4 4 48$ 4 4 4l zHMOOOOO r   