
    Eg                        d dl mZ d dlmZ d dlZd dlZddlmZ ddlm	Z	m
Z
 ej         G d de
                      Zej         G d	 d
e	                      ZddZddZdS )    )annotations)NoReturnN   )StapledStream)ReceiveStream
SendStreamc                  T    e Zd ZU  ej        e          Zded<   ddZdd	Z	dd
Z
dS )RecordSendStreamfactoryzlist[str | tuple[str, object]]recorddataobjectreturnNonec                B   K   | j                             d|f           d S )Nsend_allr   append)selfr   s     W/var/www/sysmax/venv/lib/python3.11/site-packages/trio/_tests/test_highlevel_generic.pyr   zRecordSendStream.send_all   s'      J-.....    c                >   K   | j                             d           d S )Nwait_send_all_might_not_blockr   r   s    r   r   z.RecordSendStream.wait_send_all_might_not_block   s#      :;;;;;r   c                >   K   | j                             d           d S Nacloser   r   s    r   r   zRecordSendStream.aclose   "      8$$$$$r   N)r   r   r   r   r   r   )__name__
__module____qualname__attriblistr   __annotations__r   r   r    r   r   r
   r
      sr         -4TWT-B-B-BFBBBB/ / / /< < < <% % % % % %r   r
   c                  N    e Zd ZU  ej        e          Zded<   ddd	ZddZ	dS )RecordReceiveStreamr   z"list[str | tuple[str, int | None]]r   N	max_bytes
int | Noner   bytesc                B   K   | j                             d|f           dS )Nreceive_somer   r   )r   r+   s     r   r/   z RecordReceiveStream.receive_some   s&      NI6777sr   r   c                >   K   | j                             d           d S r   r   r   s    r   r   zRecordReceiveStream.aclose"   r   r   )N)r+   r,   r   r-   r    )
r!   r"   r#   r$   r%   r&   r   r'   r/   r   r(   r   r   r*   r*      sc         181F1F1FFFFFF    % % % % % %r   r*   r   r   c                   K   t                      t                      } t          |           }|j        u sJ |j        | u sJ |                    d           d {V  |                                 d {V  j        ddgk    sJ j                                         |	                                 d {V  j        dgk    sJ j                                         dfd}|_	        |	                                 d {V  j        dgk    sJ j                                         | j        g k    sJ |
                    d	           d {V  | j        d
gk    sJ j        g k    sJ | j                                         |                                 d {V  | j        dgk    sJ j        dgk    sJ d S )N   foo)r   r2   r   r   r   r   c                 @   K    j                             d           d S )Nsend_eofr   )send_streams   r   fake_send_eofz)test_StapledStream.<locals>.fake_send_eof:   s$      !!*-----r   r4     )r/   r7   r    )r
   r*   r   r5   receive_streamr   r   r   clearr4   r/   r   )r8   stapledr6   r5   s      @r   test_StapledStreamr;   &   so     "$$K(**NK88G+----!^3333


6
"
""""""""

/
/
1
11111111'"     




(++++. . . . . . )K




*---- B&&&&


t
$
$$$$$$$$ %;$<<<<<####!!!
..

 XJ....(++++++r   c                   K    G d dt                     }  G d dt                    }t           |              |                      }t          j        t
          d          5 }|                                 d {V  d d d            n# 1 swxY w Y   t          |j        j	        t
                    sJ |j
        j        dgk    sJ |j        j        dgk    sJ d S )Nc                        e Zd Zd fdZ xZS )@test_StapledStream_with_erroring_close.<locals>.BrokenSendStreamr   r   c                r   K   t                                                       d {V  t          d          )Nz
send errorsuperr   
ValueErrorr   	__class__s    r   r   zGtest_StapledStream_with_erroring_close.<locals>.BrokenSendStream.acloseR   ;      ''.."""""""""\***r   r   r   r!   r"   r#   r   __classcell__rD   s   @r   BrokenSendStreamr>   Q   =        	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r   rJ   c                        e Zd Zd fdZ xZS )Ctest_StapledStream_with_erroring_close.<locals>.BrokenReceiveStreamr   r   c                r   K   t                                                       d {V  t          d          )Nz
recv errorr@   rC   s    r   r   zJtest_StapledStream_with_erroring_close.<locals>.BrokenReceiveStream.acloseW   rE   r   rF   rG   rI   s   @r   BrokenReceiveStreamrM   V   rK   r   rO   z^(send|recv) error$)matchr   )r
   r*   r   pytestraisesrB   r   
isinstancevalue__context__r5   r   r8   )rJ   rO   r:   excinfos       r   &test_StapledStream_with_erroring_closerW   N   s^     + + + + ++ + + +
+ + + + +1 + + +
 ,,..0C0C0E0EFFG	z)>	?	?	? 7nn              gm/<<<<<%(3333!(XJ666666s   $BBBr    )
__future__r   typingr   r$   rQ   _highlevel_genericr   abcr   r   sr
   r*   r;   rW   r(   r   r   <module>r]      s   " " " " " "         . . . . . . + + + + + + + + 
% 
% 
% 
% 
%z 
% 
% 
% % % % % %- % % %%, %, %, %,P7 7 7 7 7 7r   