o
    >hy                     @   s  d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ e jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd Ze jjejdd d	d
dd ZdS )    N)Mockcall)PrefixProtocolRawSocketClientProtocolRawSocketServerProtocolWampRawSocketClientFactoryWampRawSocketServerFactory)get_serializers)message)TransportDetailsUSE_ASYNCIOFztest runs on asyncio only)reasonc                 C   s8   t  }t|dksJ |d  td}|sJ d S )Nr   close)r	   len	serializer
   Abort)
event_loopserializersm r   /var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/asyncio/test/test_aio_rawsocket.py	test_sers   s   r   c                 C   s8  t  }t }t }||_|| d}|| |d t|jdks&J |d |j	
tdtdg |  |  d}||dd  |jrOJ ||dd  |jr]J ||dd  |jrkJ ||dd	  |d
 |  |  d}|| |
tdtdg |jdksJ d S )Ns      abcd   abcdr   s      s      0123456789AB            s   0123456789ABs      abcd   12345 s   12345    )r   r   stringReceivedconnection_madedata_receivedassert_called_once_withr   _buffer
sendStringwriteassert_has_callsr   
reset_mockcalled)r   p	transportreceiver	small_msgbig_msgtwo_messagesr   r   r   test_prefix   s8   








r.   c                 C   sv   G dd dt }| }t }t }t }||_||_|j s!J || |j r-J |d  |j s9J d S )Nc                   @      e Zd Zedd ZdS )ztest_is_closed.<locals>.CPc                 S      dS N   r   selfr   r   r   serializer_idC      z(test_is_closed.<locals>.CP.serializer_idN__name__
__module____qualname__propertyr5   r   r   r   r   CPB       r<   )r   r   r   _on_handshake_complete	is_closeddoner   connection_lostr   r<   clienton_hsr)   r*   r   r   r   test_is_closed@   s   

rE   c                 C   s   t  }tdd}t }t }t }||_||_||_||_|| d}|| |d |  |jj	s8J |jd |j
j	rDJ |d d S )NTreturn_value        abcdr2        r   )r   r   supports_serializerr   r>   r   r    r!   r$   r'   r   )r   serverserrD   r)   r*   hsr   r   r   test_raw_socket_server1U   s$   



rN   c                 C   s   t  }tdd}t }t }t }||_||_||_||_|| |d |j  t  }tdd}t }tdd}t }||_||_||_||_|| |d |j  |j	d d S )	NTrF   s   abcdefFr   r$   get_extra_infospec_setrI   s     )
r   r   rJ   r   r>   r   r    r   r!   r$   )r   rK   rL   rD   r)   r*   r   r   r   test_raw_socket_server_errorsn   s2   








rS   c                 C   s   G dd dt }| }t }t }t }||_||_|| |d |  |jjs.J |j	d |j
jr:J |d d S )Nc                   @   r/   )z#test_raw_socket_client1.<locals>.CPc                 S   r0   r1   r   r3   r   r   r   r5      r6   z1test_raw_socket_client1.<locals>.CP.serializer_idNr7   r   r   r   r   r<      r=   r<   rH   rI   r   )r   r   r   r>   r   r    r!   r$   r'   called_one_withr   rB   r   r   r   test_raw_socket_client1   s   

rU   c                 C   sZ   G dd dt }| }t }tdd}t }||_||_|| |d |j  d S )Nc                   @   r/   )z(test_raw_socket_client_error.<locals>.CPc                 S   r0   r1   r   r3   r   r   r   r5      r6   z6test_raw_socket_client_error.<locals>.CP.serializer_idNr7   r   r   r   r   r<      r=   r<   rO   rQ   s    )r   r   r   r>   r   r    r   r!   rB   r   r   r   test_raw_socket_client_error   s   


rV   c                    s  t dd}t  fddd|_t ddgdfd	d
}g  t| }|| |jjdu s0J |jjtjks9J |j	j
s?J |j	j
d j}|ttdd|B ddg |jsZJ j| |td  dd  D ]}|| qnjjs|J tjjd d tjsJ d S )Nabortr   r$   rP   rQ   c                    
     | S Nappendr   messagesr   r   <lambda>      
 z"test_wamp_server.<locals>.<lambda>side_effectonOpen	onMessagespecc                          S rZ   r   r   )rK   r   r   fact_server      z%test_wamp_server.<locals>.fact_serverTr2         r   r   )r   r$   r   r   transport_details	is_serverchannel_framingr   CHANNEL_FRAMING_RAWSOCKETfactory_serializersRAWSOCKET_SERIALIZER_IDr    bytes	bytearray_serializerrd   r!   sendr
   r   re   r'   
isinstance	call_args)r   r)   ri   protosdr   )r_   rK   r   test_wamp_server   s&   



 r}   c                    s  t dd}t fddd|_t ddgd  fd	d
}g t| }|| |jjdu s0J |jjtjks9J |j	s>J |j	j
}|ttdd|B ddg  j| |td dd  D ]}|| qe jjssJ t jjd d tjsJ d S )NrW   rQ   c                    rY   rZ   r[   r]   r^   r   r   r`      ra   z"test_wamp_client.<locals>.<lambda>rb   rd   re   rf   c                      rh   rZ   r   r   )rC   r   r   fact_client   rj   z%test_wamp_client.<locals>.fact_clientFrk   rl   r   r   r2   )r   r$   r   r   rm   rn   ro   r   rp   rv   rs   r    rt   ru   rd   r!   rw   r
   r   re   r'   rx   ry   )r   r)   r~   rz   r{   r|   r   )rC   r_   r   test_wamp_client   s$   



 r   )pytestosunittest.mockr   r   autobahn.asyncio.rawsocketr   r   r   r   r   autobahn.asyncio.utilr	   autobahn.wampr
   autobahn.wamp.typesr   markskipifenvirongetr   r.   rE   rN   rS   rU   rV   r}   r   r   r   r   r   <module>   s2    

*





