U
    ʼb
                     @   s\   d dl Z d dlZd dlZd dlZddlT dd Zdd Zdd	 Zd
d Zdd Z	dd Z
dS )    N   )*c                	   C   s"   t t td W 5 Q R X d S )Nzabstract base class)pytestraises	TypeErrorProtocolError r   r   7/tmp/pip-unpacked-wheel-rko__zic/h11/tests/test_util.pytest_ProtocolError	   s    r
   c               
   C   s~  zt dW n@ t k
rL }  z"t| dks.t| jdks<tW 5 d } ~ X Y nX zt dddW n@ t k
r }  z"t| dkst| jdkstW 5 d } ~ X Y nX dd }zRz
|  W nB t k
r } z$dtt d }|	  W 5 d }~X Y nX W n~ t
k
rx } z^t|t
ks t|jd	ks0t|jd
ks@tdtt d }||shtW 5 d }~X Y nX d S )NZfooi  i  error_status_hintc                   S   s   t dddd S )Na  r   )LocalProtocolErrorr   r   r   r	   thunk   s    z&test_LocalProtocolError.<locals>.thunk r   )r   r   )r   strAssertionErrorr   join	traceback	format_tbsysexc_infoZ!_reraise_as_remote_protocol_errorZRemoteProtocolError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 5 Q R X t| d}|dddksFttt t| d W 5 Q R X tt t| d W 5 Q R X 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   validater   )my_regroupsr   r   r	   test_validate*   s    

r%   c               	   C   s   t d} tt}t| dd W 5 Q R X dt|jks>ttt}t| dd W 5 Q R X dt|jksrttt}t| ddd W 5 Q R X dt|jkstd S )Ns   foo    Zoopszoops {}z
oops {} xx
   z
oops 10 xx)	r    r!   r   r   r   r"   r   valuer   )r#   excinfor   r   r	   test_validate_formatting8   s    
r*   c                  C   s   t d} t| dkst| | ks$tt| jdks6t| | hksDtt| | ksTtt d}t|dkslt| |ksxt| |hkstt| t|k	std S )NSS2)Zmake_sentinelreprr   r   __name__)r+   r,   r   r   r	   test_make_sentinelG   s    r/   c                	   C   st   t ddkstt tddks$tt ddks4ttt t d W 5 Q R X tt t d W 5 Q R X d S )Ns   123Z123u   ሴr'   )Zbytesifyr   	bytearrayr   r   UnicodeEncodeErrorr   r   r   r   r	   test_bytesifyT   s    r2   )r    r   r   r   Z_utilr
   r   r%   r*   r/   r2   r   r   r   r	   <module>   s   