a
    xd[
                     @   sl   d dl Z d dlZddlmZmZ ddlmZ ejG dd deZejG dd deZ	d	d
 Z
dd ZdS )    N   )
SendStreamReceiveStream)StapledStreamc                   @   s0   e Zd ZejedZdd Zdd Zdd Z	dS )	RecordSendStreamfactoryc                    s   | j d|f d S )Nsend_allrecordappend)selfdata r   Y/var/www/html/Ranjet/env/lib/python3.9/site-packages/trio/tests/test_highlevel_generic.pyr	      s    zRecordSendStream.send_allc                    s   | j d d S )Nwait_send_all_might_not_blockr
   r   r   r   r   r      s    z.RecordSendStream.wait_send_all_might_not_blockc                    s   | j d d S Nacloser
   r   r   r   r   r      s    zRecordSendStream.acloseN)
__name__
__module____qualname__attriblistr   r	   r   r   r   r   r   r   r   	   s   r   c                   @   s*   e Zd ZejedZdddZdd ZdS )RecordReceiveStreamr   Nc                    s   | j d|f d S )Nreceive_somer
   )r   Z	max_bytesr   r   r   r      s    z RecordReceiveStream.receive_somec                    s   | j d d S r   r
   r   r   r   r   r      s    zRecordReceiveStream.aclose)N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
r   c                     sL  t   t } t | }|j u s$J |j| u s2J |dI d H  | I d H   jddgksbJ  j  |	 I d H   jdgksJ  j   fdd}| _	|	 I d H   jdgksJ  j  | jg ksJ |
dI d H  | jd	gksJ  jg ksJ | j  | I d H  | jdgks6J  jdgksHJ d S )
N   foo)r	   r   r   r   c                      s    j d d S )Nsend_eofr
   r   send_streamr   r   fake_send_eof6   s    z)test_StapledStream.<locals>.fake_send_eofr     )r   r"   )r   r   r   r    receive_streamr	   r   r   clearr   r   r   )r#   stapledr!   r   r   r   test_StapledStream"   s8    





r&   c                     s   G dd dt } G dd dt}t|  | }tt}| I d H  W d    n1 s\0    Y  t|jj	tsxJ |j
jdgksJ |jjdgksJ d S )Nc                       s   e Zd Z fddZ  ZS )z@test_StapledStream_with_erroring_close.<locals>.BrokenSendStreamc                    s   t   I d H  td S Nsuperr   
ValueErrorr   	__class__r   r   r   N   s    zGtest_StapledStream_with_erroring_close.<locals>.BrokenSendStream.acloser   r   r   r   __classcell__r   r   r+   r   BrokenSendStreamM   s   r/   c                       s   e Zd Z fddZ  ZS )zCtest_StapledStream_with_erroring_close.<locals>.BrokenReceiveStreamc                    s   t   I d H  td S r'   r(   r   r+   r   r   r   S   s    zJtest_StapledStream_with_erroring_close.<locals>.BrokenReceiveStream.acloser-   r   r   r+   r   BrokenReceiveStreamR   s   r0   r   )r   r   r   pytestZraisesr*   r   
isinstancevalue__context__r    r   r#   )r/   r0   r%   excinfor   r   r   &test_StapledStream_with_erroring_closeJ   s    ,r6   )r1   r   abcr   r   Z_highlevel_genericr   sr   r   r&   r6   r   r   r   r   <module>   s   
(