o
    4Zc>                     @   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s!J || dddkr+J || dddkr5J || dddks?J tt t| W d    n1 sSw   Y  | dd	}|jdksdJ |jdkskJ tt | d W d    n1 sw   Y  tt | dddd W d    n1 sw   Y  tt | dddd
 W d    n1 sw   Y  tt}| dd W d    n1 sw   Y  dt	|j
v sJ tt | ddd W d    d S 1 sw   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   K/var/www/chikooza/env/lib/python3.10/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   _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 sw   Y  tdddgdd} | jdks.J | jdks5J | jd	gks=J | jd
ksDJ tddddgdd} | jd	dgksWJ t t tddddgdd} W d    n1 sqw   Y  t t tddddgdd} W d    n1 sw   Y  dD ]%}t t tddddd| fgdd} W d    n1 sw   Y  qtddddgdd dD ])}td}|	| t t td|dgdd W d    n1 sw   Y  qt
ddgd}|jdksJ |jdgksJ |jdksJ t t t
ddgd W d    n	1 s+w   Y  tdg dd}|jdks?J |jg ksGJ |jd
ksOJ t t tdg dd}W d    n	1 sgw   Y  t t tdg dd W d    n	1 sw   Y  t t t
dg dd W d    n	1 sw   Y  tdd}|jdksJ 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)hOStzexample.com)   hosts   example.com)Hostr   z 
Fooasd)r2   zasds     d   )status_coder)   )r0   r-   s   1.1      r5   r)   r*   100s   100s   asdf)datazConnectionClosed())r   r   r   Requestr'   r(   r)   r*   	bytearrayappendInformationalResponser5   ResponseDatar:   EndOfMessageConnectionClosedr   )reqbad_charr(   irrespdeomccr   r   r   test_events8   s   
	



rJ   c                  C   sN   t tjg dd} | jtjksJ t| jttjusJ t| jtu s%J d S )Nr+   r8   )r?   r   OKr5   typeintrr   r   r   test_intenum_status_code   s   rP   c                  C   sd   t ddddgdd} t| jdksJ | jd d	ksJ | jd	d
gks%J | j ddgks0J d S )Nr#   r$   )r1   zexample.org)
Connectionz
keep-aliver%   r&   r   r   )r0      example.org)s
   connection
   keep-alive)s   HostrR   )s
   ConnectionrS   )r;   lenr)   	raw_itemsrN   r   r   r   test_header_casing   s   rV   )httpr   r    r   _utilr   r"   rJ   rP   rV   r   r   r   r   <module>   s    .e	