a
    "h                     @   sJ   d Z ddlZddlZddlZddlZG dd dejZedkrFe	  dS )z'Unit tests for code in urllib.response.    Nc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestResponsec                 C   s0   t  t jt j| _| jd| _ddd| _d S )Nrbzwww.python.orgclose)ZHost
Connection)socketAF_INETSOCK_STREAMsockmakefilefptest_headersself r   A/opt/python-3.9.21/usr/lib/python3.9/test/test_urllib_response.pysetUp
   s
    zTestResponse.setUpc                    sZ   t j| j |  tj  fdd}| | jj |  | 	| jj | 
t| d S )Nc                     s(    } W d    n1 s0    Y  d S Nr   )Zspamaddbaser   r   f   s    z!TestResponse.test_with.<locals>.f)urllibresponser   r   ZassertIsInstancetempfile_TemporaryFileWrapperZassertFalseclosed
assertTrueZassertRaises
ValueError)r   r   r   r   r   	test_with   s    zTestResponse.test_withc                    sD   d  fdd}t j| j|}|  | | jj |   d S )NFc                      s   d d S )NTr   r   Zclosehook_calledr   r   	closehook    s    z1TestResponse.test_addclosehook.<locals>.closehook)r   r   Zaddclosehookr   r   r   r   )r   r   r   r   r   test_addclosehook   s    zTestResponse.test_addclosehookc                 C   s8   t j| j| j}| | | j | |j| j d S r   )r   r   Zaddinfor   r   assertEqualinfoheaders)r   r"   r   r   r   test_addinfo*   s    zTestResponse.test_addinfoc                 C   s   d}d}t j| j| j||}| | | j | | | | | | | |j	| j | |j
| | |j| d S )Nzhttp://www.python.org   )r   r   Z
addinfourlr   r   r!   r"   geturlZgetcoder#   urlstatus)r   r'   codeZinfourlr   r   r   test_addinfourl/   s    zTestResponse.test_addinfourlc                 C   s   | j   d S r   )r	   r   r   r   r   r   tearDown;   s    zTestResponse.tearDownN)	__name__
__module____qualname__r   r   r    r$   r*   r+   r   r   r   r   r      s   r   __main__)
__doc__r   r   Zurllib.responser   ZunittestZTestCaser   r,   mainr   r   r   r   <module>   s   6