
    tfy                        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                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            dd           d	
          d             Ze j                            ej                            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                     t                      }t          |          dk    sJ  |d                                         t          j        d                    }|sJ d S )Nr   close)r
   len	serializer   Abort)
event_loopserializersms      g/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/asyncio/test/test_aio_rawsocket.py	test_sersr      s\    !##K{aA""7=#9#9::AHHHHH    c                 J   t                      }t                      }t                      }||_        |                    |           d}|                    |           |                    d           t          |j                  dk    sJ |                    d           |j	        
                    t          d          t          d          g           |                                 |                                 d}|                    |dd                    |j        rJ |                    |dd                    |j        rJ |                    |dd                    |j        rJ |                    |dd	                    |                    d
           |                                 |                                 d}|                    |           |
                    t          d          t          d          g           |j        dk    sJ 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_messagess          r   test_prefixr1      s   AIvvHAi   'IOOI$$W---qy>>QLL O$$d+>&?&?g%OPPP3GOOGAaCL!!!OOGAaCL!!!OOGAbDM"""OOGBrEN###$$_555[LOOL!!!tG}}d8nn=>>>9r   c                     G d dt                     } |            }t                      }t                      }t                      }||_        ||_        |j                                        sJ |                    |           |j                                        rJ |                    d            |j                                        sJ d S )Nc                   $    e Zd Zed             ZdS )test_is_closed.<locals>.CPc                     dS N    selfs    r   serializer_idz(test_is_closed.<locals>.CP.serializer_idC       1r   N__name__
__module____qualname__propertyr;   r8   r   r   CPr4   B   -        		 	 
	 	 	r   rB   )r   r   r!   _on_handshake_complete	is_closeddoner"   connection_lostr   rB   clienton_hsr,   r-   s         r   test_is_closedrK   @   s        $    RTTFFFEIvvH$F$)F!  """""
9%%%$$&&&&&
4     """""""r   c                    t                      }t          d          }t                      }t                      }t                      }||_        ||_        ||_        ||_        |                    |           d}|                    |           |                    d           |                                 |j        j	        sJ |j                            d           |j
        j	        rJ |                    d           d S )NTreturn_value        abcdr7        r   )r   r   supports_serializerr!   rD   r"   r#   r$   r'   r*   r   )r   serverserrJ   r,   r-   hss          r   test_raw_socket_server1rU   U   s     %&&F
D
!
!
!CFFEIvvH!$F$F$)F!$F
9%%%	6B
"""	!!###?!!!!O++,?@@@%%%%$$W-----r   c                    t                      }t          d          }t                      }t                      }t                      }||_        ||_        ||_        ||_        |                    |           |                    d           |j                                         t                      }t          d          }t                      }t          d          }t                      }||_        ||_        ||_        ||_        |                    |           |                    d           |j                                         |j	                            d           d S )	NTrM   s   abcdefFr   r'   get_extra_infospec_setrP   s     )
r   r   rQ   r!   rD   r"   r#   r   r$   r'   )r   rR   rS   rJ   r,   r-   s         r   test_raw_socket_server_errorsr[   n   sN    %&&F
D
!
!
!CFFEIvvH!$F$F$)F!$F
9%%%
###O++---$&&F
E
"
"
"CFFEBCCCIvvH!$F$F$)F!$F
9%%%
,---O++---O++,?@@@@@r   c                     G d dt                     } |            }t                      }t                      }t                      }||_        ||_        |                    |           |                    d           |                                 |j        j        sJ |j        	                    d           |j
        j        rJ |                    d           d S )Nc                   $    e Zd Zed             ZdS )#test_raw_socket_client1.<locals>.CPc                     dS r6   r8   r9   s    r   r;   z1test_raw_socket_client1.<locals>.CP.serializer_id   r<   r   Nr=   r8   r   r   rB   r^      rC   r   rB   rO   rP   r   )r   r   r!   rD   r"   r#   r$   r'   r*   called_one_withr   rH   s         r   test_raw_socket_client1ra      s        $    RTTFFFEIvvH$F$)F!
9%%%
FGGG	!!###?!!!!O##$7888%%%%$$W-----r   c                 :    G d dt                     } |            }t                      }t          d          }t                      }||_        ||_        |                    |           |                    d           |j                                         d S )Nc                   $    e Zd Zed             ZdS )(test_raw_socket_client_error.<locals>.CPc                     dS r6   r8   r9   s    r   r;   z6test_raw_socket_client_error.<locals>.CP.serializer_id   r<   r   Nr=   r8   r   r   rB   rd      rC   r   rB   rW   rY   s    )r   r   r!   rD   r"   r#   r   r$   rH   s         r   test_raw_socket_client_errorrf      s        $    RTTFFFEBCCCIvvH$F$)F!
9%%%
,---O++-----r   c           
      J   t          d          }t          fd          |_        t          ddg          fd}g  t          |                      }|                    |           |j        j        d	u sJ |j        j        t          j        k    sJ |j	        j
        sJ |j	        j
        d
         j        }|                    t          t          dd|z  ddg                               |j        sJ j                            |           |                    t'          j        d                     d
d          D ]}|                    |           j        j        sJ t/          j        j        d         d         t&          j                  sJ d S )Nabortr   r'   rX   rY   c                 .                         |           S Nappendr   messagess    r   <lambda>z"test_wamp_server.<locals>.<lambda>       1C1C r   side_effectonOpen	onMessagespecc                       S rk   r8   )rR   s   r   fact_serverz%test_wamp_server.<locals>.fact_server       r   Tr7         r   r   )r   r'   r	   r"   transport_details	is_serverchannel_framingr   CHANNEL_FRAMING_RAWSOCKETfactory_serializersRAWSOCKET_SERIALIZER_IDr#   bytes	bytearray_serializerrt   r$   sendr   r   ru   r*   
isinstance	call_args)r   r,   ry   protosdro   rR   s         @@r   test_wamp_serverr      s   KLLLI'C'C'C'CDDDIO+.///F     H3&{3355E	)$$$",4444"26F6`````=%%%%"1%=A	itaxA(>??@@AAA
M))%000	JJw}W%%&&&abb\  A""""f&03A6FFFFFFFr   c           
         t          d          }t          fd          |_        t          ddg          fd}g  t          |                      }|                    |           |j        j        d	u sJ |j        j        t          j        k    sJ |j	        sJ |j	        j
        }|                    t          t          d
d|z  ddg                               j                            |           |                    t#          j        d                     dd          D ]}|                    |           j        j        sJ t+          j        j        d         d         t"          j                  sJ d S )Nrh   rY   c                 .                         |           S rk   rl   rn   s    r   rp   z"test_wamp_client.<locals>.<lambda>   rq   r   rr   rt   ru   rv   c                       S rk   r8   )rI   s   r   fact_clientz%test_wamp_client.<locals>.fact_client   rz   r   Fr{   r|   r   r   r7   )r   r'   r   r"   r}   r~   r   r   r   r   r   r#   r   r   rt   r$   r   r   r   ru   r*   r   r   )r   r,   r   r   r   r   rI   ro   s         @@r   test_wamp_clientr      s   KLLLI'C'C'C'CDDDIO+.///F     H3&{3355E	)$$$",5555"26F6`````1A	itaxA(>??@@AAA
M))%000	JJw}W%%&&&abb\  A""""f&03A6FFFFFFFr   )pytestosunittest.mockr   r   autobahn.asyncio.rawsocketr   r   r   r   r	   autobahn.asyncio.utilr
   autobahn.wampr   autobahn.wamp.typesr   markskipifenvirongetr   r1   rK   rU   r[   ra   rf   r   r   r8   r   r   <module>r      s7    				 $ $ $ $ $ $ $ $; ; ; ; ; ; ; ; ; ; ; ; ; ; 1 1 1 1 1 1 ! ! ! ! ! ! 0 0 0 0 0 0 
}e<<<E`aa  ba 
}e<<<E`aa'  '  ba' T 
}e<<<E`aa# # ba#( 
}e<<<E`aa. . ba.0 
}e<<<E`aaA A baA< 
}e<<<E`aa. . ba., 
}e<<<E`aa. . ba.$ 
}e<<<E`aaG G baG6 
}e<<<E`aaG G baG G Gr   