U
    e                     @   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dZdddd	Zddd
dZddddZddddZddddZdS )    N)NoReturn   )bytesifyLocalProtocolErrorProtocolErrorRemoteProtocolErrorSentinelvalidatereturnc                	   C   s"   t t td W 5 Q R X d S )Nzabstract base class)pytestraises	TypeErrorr    r   r   T/var/www/html/assets/scripts/venv/lib/python3.8/site-packages/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 tddd}zRz
|  W nB t k
r } z$dtt	 d	 }|
  W 5 d }~X Y nX W n~ tk
r~ } z^t|tks&t|jd
ks6t|jdksFtdtt	 d	 }||sntW 5 d }~X Y nX d S )NZfooi  i  error_status_hintr
   c                   S   s   t dddd S )Na  r   )r   r   r   r   r   thunk$   s    z&test_LocalProtocolError.<locals>.thunk r   )r   r   )r   strAssertionErrorr   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 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   r	   r   )my_regroupsr   r   r   test_validate5   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_formattingD   s    
r/   c                  C   s   G dd dt t d} t| dks$t| | ks0tt| jdksBt| | hksPtt| | ks`tG dd dt t d}t|dkst| |kst| |hkstt| t|k	std S )Nc                   @   s   e Zd ZdS )ztest_make_sentinel.<locals>.SN__name__
__module____qualname__r   r   r   r   SU   s   r4   )	metaclassc                   @   s   e Zd ZdS )ztest_make_sentinel.<locals>.S2Nr0   r   r   r   r   S2^   s   r6   )r   reprr   r   r1   )r4   r6   r   r   r   test_make_sentinelT   s    r8   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,   )r   r   	bytearrayr   r   UnicodeEncodeErrorr   r   r   r   r   test_bytesifyg   s    r;   )r&   r   r   typingr   r   Z_utilr   r   r   r   r   r	   r   r#   r*   r/   r8   r;   r   r   r   r   <module>   s    
