
    wg                         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ZddZddZddZdd	Zdd
Zy)    N)NoReturn   )bytesifyLocalProtocolErrorProtocolErrorRemoteProtocolErrorSentinelvalidatec                  v    t        j                  t              5  t        d       d d d        y # 1 sw Y   y xY w)Nzabstract base class)pytestraises	TypeErrorr        X/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/h11/tests/test_util.pytest_ProtocolErrorr      s,    	y	! -+,- - -s   /8c                  &   	 t        d      # t         $ r+} t        |       dk(  sJ | j                  dk(  sJ Y d } ~ nd } ~ ww xY w	 t        dd      # t         $ r+} t        |       dk(  sJ | j                  dk(  sJ Y d } ~ nd } ~ ww xY wdt        fd}	 	  |        y # t         $ rS}dj	                  t        j                  t        j                         d               }|j                          Y d }~y d }~ww xY w# t        $ r}t        |      t        u sJ |j                  d	k(  sJ |j                  d
k(  sJ dj	                  t        j                  t        j                         d               }|j                        sJ Y d }~y d }~ww xY w)Nfooi  i  error_status_hintreturnc                      t        dd      )Na  r   )r   r   r   r   thunkz&test_LocalProtocolError.<locals>.thunk$   s     <<r    r   )r   r   )r   strr   r   join	traceback	format_tbsysexc_info!_reraise_as_remote_protocol_errorr   typeargsendswith)er   exc1orig_tracebackexc2new_tracebacks         r   test_LocalProtocolErrorr,      sl   * '' *1v""c)))** #>> *1v""c)))*=8 =6	5G! 	5WWY%8%89J%KLN2244	5  6Dz0000yyF"""%%,,,	 3 3CLLN14E FG%%n5556sb    	A!<AA 	B!BBB 	C9&A	C4/C< 4C99C< <	FBFFc                     t        j                  d      } t        j                  t              5  t        | d       d d d        t        | d      }|dddk(  sJ t        j                  t              5  t        | d       d d d        t        j                  t              5  t        | d       d d d        y # 1 sw Y   |xY w# 1 sw Y   DxY w# 1 sw Y   y xY w)	Ns&   (?P<group1>[0-9]+)\.(?P<group2>[0-9]+)s   0.s   0.1   0   1)group1group2s   0.1xxs   0.1
)recompiler   r   r   r
   )my_regroupss     r   test_validater6   5   s    JJABE	)	*  eV$F5555 
)	* "!"	)	* "!" " " "" "s#   B73C!C7C CCc                  (   t        j                  d      } t        j                  t              5 }t        | dd       d d d        dt        j                        v sJ t        j                  t              5 }t        | dd       d d d        dt        |j                        v sJ t        j                  t              5 }t        | ddd       d d d        dt        |j                        v sJ y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   ;xY w)Ns   foor   oopszoops {}z
oops {} xx
   z
oops 10 xx)r2   r3   r   r   r   r
   r   value)r4   excinfos     r   test_validate_formattingr<   D   s    JJwE	)	* %gV$%S''''	)	* (gY'(GMM****	)	* /g\2./3w}}----% %( (/ /s#   C07C<?D0C9<DDc                  R    G d dt         t               } t        |       dk(  sJ | | k(  sJ t        |       j                  dk(  sJ | | hv sJ t        |       | u sJ  G d dt         t               }t        |      dk(  sJ | |k7  sJ | |hvsJ t        |       t        |      usJ y )Nc                       e Zd Zy)test_make_sentinel.<locals>.SN__name__
__module____qualname__r   r   r   Sr?   U       r   rD   )	metaclassc                       e Zd Zy)test_make_sentinel.<locals>.S2Nr@   r   r   r   S2rH   ^   rE   r   rI   )r	   reprr$   rA   )rD   rI   s     r   test_make_sentinelrK   T   s    H  7c>>6M67s"""8O87a<<X  8t7N7RD==7$r("""r   c                  Z   t        d      dk(  sJ t        t        d            dk(  sJ t        d      dk(  sJ t        j                  t              5  t        d       d d d        t        j                  t
              5  t        d       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Ns   123123u   ሴr9   )r   	bytearrayr   r   UnicodeEncodeErrorr   r   r   r   test_bytesifyrP   g   s    Fv%%%If%&&000E?f$$$	)	*  
y	!    s   B B!B!B*)r   N)r2   r!   r   typingr   r   _utilr   r   r   r   r	   r
   r   r,   r6   r<   rK   rP   r   r   r   <module>rS      s<    	 
    -
6<". #&	r   