a
    
d>                     @   sX   d dl mZ d dlZddlmZ ddlT ddlmZ dd Zd	d
 Zdd Z	dd Z
dS )    )
HTTPStatusN   )_events)*)LocalProtocolErrorc                  C   s  G dd dt j} | ddd}t|dks.J || dddksBJ || dddkrVJ || dddkrjJ || dddks~J tt t| W d    n1 s0    Y  | dd	}|jdksJ |jdksJ tt | d W d    n1 s0    Y  tt | dddd W d    n1 s80    Y  tt | dddd
 W d    n1 sr0    Y  tt}| dd W d    n1 s0    Y  dt	|j
v sJ tt | ddd W d    n1 s0    Y  d S )Nc                   @   s$   e Zd ZddgZddiZdd ZdS )ztest_event_bundle.<locals>.Tab   c                 S   s   | j dkrtd S )Nr   )r   
ValueError)self r   ^/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/h11/tests/test_events.py	_validate   s    
z&test_event_bundle.<locals>.T._validateN)__name__
__module____qualname___fields	_defaultsr   r   r   r   r   T   s   r   r	   r   r   r   zT(a=1, b=0)r   
   )r   )r   r   c)r   zkwarg a)r   Z_EventBundlereprpytestraises	TypeErrorhashr   r   strvaluer
   )r   texcr   r   r   test_event_bundle
   s.    	&
&..*r!   c               	   C   s  t t" tdddgdd} W d    n1 s20    Y  tdddgdd} | jdks\J | jdksjJ | jd	gkszJ | jd
ksJ tddddgdd} | jd	dgksJ t t$ tddddgdd} W d    n1 s0    Y  t t$ tddddgdd} W d    n1 s"0    Y  dD ]N}t t, tddddd| fgdd} W d    n1 sr0    Y  q0tddddgdd dD ]V}td}|	| t t" td|dgdd W d    n1 s0    Y  qt
ddgd}|jdksJ |jdgks J |jdks0J t t t
ddgd W d    n1 s`0    Y  tdg dd}|jdksJ |jg ksJ |jd
ksJ t t tdg dd}W d    n1 s0    Y  t t tdg dd W d    n1 s0    Y  t t t
dg dd W d    n1 sL0    Y  tdd}|jdkspJ t }|jg ksJ t }t|dksJ d S )NGET/r   1.1methodtargetheadershttp_version1.0s   GET   /)   a   bs   1.0)ZhOStzexample.com)   hosts   example.com)Hostr   z 
Fooasd)r0   zasds     d   )status_coder(   )r.   r,   s   1.1      r3   r(   r)   Z100s   100s   asdf)datazConnectionClosed())r   r   r   Requestr&   r'   r(   r)   	bytearrayappendZInformationalResponser3   ResponseZDatar7   ZEndOfMessageZConnectionClosedr   )reqZbad_charr'   ZirrespdZeomccr   r   r   test_events8   s    
$$&*	

*....
r@   c                  C   sN   t tjg dd} | jtjks J t| jttjus8J t| jtu sJJ d S )Nr*   r6   )r;   r   OKr3   typeintrr   r   r   test_intenum_status_code   s    rF   c                  C   sd   t ddddgdd} t| jdks&J | jd d	ks8J | jd	d
gksJJ | j ddgks`J d S )Nr"   r#   )r/   zexample.org)
Connectionz
keep-aliver$   r%   r   r   )r.      example.org)s
   connection
   keep-alive)s   HostrH   )s
   ConnectionrI   )r8   lenr(   	raw_itemsrD   r   r   r   test_header_casing   s    rL   )httpr   r    r   Z_utilr   r!   r@   rF   rL   r   r   r   r   <module>   s   .e	