
    \j                     T    d dl mZmZ d dlmZmZ d dlZ G d d      Z G d d      Zy)    )_BufferedLineReader	SSEClient)ChunkedResponsestart_serverNc            	           e Zd Z ej                  g d      d        Z ej                  g dg dgg dg dgg dg d	gg d
g dgddgg dgg      d        Zd Zd Zy)TestBufferedLineReader)
z
)paramsc                     |j                   S )N)param)selfrequests     ?/root/env/lib/python3.12/site-packages/testing/impl/test_sse.py
terminatorz!TestBufferedLineReader.terminator	   s    }}    )first line*second line*	3rd line*)
first linesecond line3rd line)*r   r   ) r   r   )r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   zfirst line*second line*thirdz line*fourth line*)r   r   
third linefourth linec                 h    t        fd|j                  d   D              }||j                  d   gS )Nc              3   ^   K   | ]$  }|j                  d       j                          & yw)r   N)replaceencode).0sr   s     r   	<genexpr>z8TestBufferedLineReader.inputs_outputs.<locals>.<genexpr>$   s%     TaaiiZ0779Ts   *-r      )listr   )r   r   r   inputss    `  r   inputs_outputsz%TestBufferedLineReader.inputs_outputs   s3    . T7==QRCSTTa())r   c                 V    t        t        j                  |d               |d   k(  sJ y )Nr   r$   r%   r   
lines_from)r   r'   s     r   test_parsingz#TestBufferedLineReader.test_parsing'   s,    '22>!3DEF.YZJ[[[[r   c                 Z    g d}g d}t        t        j                  |            |k(  sJ y )N)s#   first line
second line
third lines   
fourth lines   
last
)r   r   r   r   r   lastr)   )r   chunksexpecteds      r   test_mixed_terminatorsz-TestBufferedLineReader.test_mixed_terminators*   s1    


 '226:;xGGGr   N)	__name__
__module____qualname__pytestfixturer   r'   r+   r0    r   r   r   r      s    V^^12 3 V^^:6	

 1,	

 0+	

 :4	

 -.BCH	
# ,*-,*\Hr   r   c                       e Zd Zd Zd Zy)TestSSEClientc                 F   t               5 }t        ddi      5 }|j                  d|       t        |j                        }|j                         }|j                  d   dk(  sJ |j                  d   dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NContent-Typetext/event-stream/AcceptzCache-Controlzno-cache)r   r   for_pathr   uriawait_requestheaders)r   serverstreamclientrs        r   test_sends_expected_headersz)TestSSEClient.test_sends_expected_headers?   s    ^ 	@v >3F!HI @VV,"6::.((*yy*.AAAAyy1Z???@	@ 	@@ @	@ 	@s#   BA B:BB	BB c                    t               5 }t        ddi      5 }|j                  d|       t        |j                        }|j                  d       |j                  }t        |      }|j                  dk(  sJ |j                  dk(  sJ t        |      }|j                  dk(  sJ |j                  dk(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	Nr:   r;   r<   z6event: event1
data: data1

event: event2
data: data2

event1data1event2data2)
r   r   r>   r   r?   pusheventsnexteventdata)r   rB   rC   rD   rM   rH   rJ   s          r   test_receives_messagesz$TestSSEClient.test_receives_messagesI   s    ^ 	.v >3F!HI .VV,"6::.Z[f||x///{{g---f||x///{{g---.	. 	.. .	. 	.s#   CBC
9C
C	CCN)r1   r2   r3   rF   rQ   r6   r   r   r8   r8   >   s    @.r   r8   )	ldclient.impl.sser   r   testing.http_utilr   r   r4   r   r8   r6   r   r   <module>rT      s%    < ; 0H 0Hl. .r   