o
    US`c                     @   s   d dl Z d dlZd dlZd dlmZ d dlZddlmZmZm	Z	m
Z
mZmZ dddZddd	Zdd
dZdddZdddZdddZdS )    N)NoReturn   )bytesifyLocalProtocolErrorProtocolErrorRemoteProtocolErrorSentinelvalidatereturnc                   C   s8   t t td W d    d S 1 sw   Y  d S )Nzabstract base class)pytestraises	TypeErrorr    r   r   >/usr/local/lib/python3.10/dist-packages/h11/tests/test_util.pytest_ProtocolError   s   
"r   c               
   C   s|  zt d t y% }  zt| dksJ | jdksJ W Y d } ~ nd } ~ ww zt ddd t yM }  zt| dks<J | jdksCJ W Y d } ~ nd } ~ ww dtfdd}z,z|  W W d S  t y } zdtt d	 }|	  W Y d }~W d S d }~ww  t
y } z0t|t
u sJ |jd
ksJ |jdksJ dtt d	 }||sJ W Y d }~d S d }~ww )NZfooi  i  error_status_hintr
   c                   S   s   t ddd)Na  r   )r   r   r   r   r   thunk$   s   z&test_LocalProtocolError.<locals>.thunk r   )r   r   )r   strr   r   join	traceback	format_tbsysexc_infoZ!_reraise_as_remote_protocol_errorr   typeargsendswith)er   Zexc1Zorig_tracebackZexc2Znew_tracebackr   r   r   test_LocalProtocolError   s>   r!   c                  C   s   t d} tt t| d W d    n1 sw   Y  t| d}|dddks-J tt t| d W d    n1 sBw   Y  tt t| d W d    d S 1 s]w   Y  d S )	Ns&   (?P<group1>[0-9]+)\.(?P<group2>[0-9]+)s   0.s   0.1   0   1)Zgroup1Zgroup2s   0.1xxs   0.1
)recompiler   r   r   r	   )my_regroupsr   r   r   test_validate5   s   

"r(   c                  C   s   t d} tt}t| dd W d    n1 sw   Y  dt|jv s)J tt}t| dd W d    n1 s?w   Y  dt|jv sMJ tt}t| ddd W d    n1 sdw   Y  dt|jv srJ d S )Ns   foo    Zoopszoops {}z
oops {} xx
   z
oops 10 xx)r$   r%   r   r   r   r	   r   value)r&   excinfor   r   r   test_validate_formattingD   s   
r-   c                  C   s   G dd dt t d} t| dksJ | | ksJ t| jdks!J | | hv s(J t| | u s0J G dd dt t d}t|dksBJ | |ksHJ | |hvsOJ t| t|usYJ d S )Nc                   @      e Zd ZdS )ztest_make_sentinel.<locals>.SN__name__
__module____qualname__r   r   r   r   SU       r3   )	metaclassc                   @   r.   )ztest_make_sentinel.<locals>.S2Nr/   r   r   r   r   S2^   r4   r6   )r   reprr   r0   )r3   r6   r   r   r   test_make_sentinelT   s   r8   c                   C   s   t ddksJ t tddksJ t ddksJ tt t d W d    n1 s.w   Y  tt t d W d    d S 1 sHw   Y  d S )Ns   123Z123u   ሴr*   )r   	bytearrayr   r   UnicodeEncodeErrorr   r   r   r   r   test_bytesifyg   s   

"r;   )r
   N)r$   r   r   typingr   r   Z_utilr   r   r   r   r   r	   r   r!   r(   r-   r8   r;   r   r   r   r   <module>   s     





