
    hy                        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&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Ze j"                  j%                  ej&                  j)                  dd       d	
      d        Zy)    N)Mockcall)PrefixProtocolRawSocketClientProtocolRawSocketServerProtocolWampRawSocketClientFactoryWampRawSocketServerFactory)get_serializers)message)TransportDetailsUSE_ASYNCIOFztest runs on asyncio only)reasonc                     t               }t        |      dkD  sJ  |d          j                  t        j                  d            }|sJ y )Nr   close)r
   len	serializer   Abort)
event_loopserializersms      d/var/www/Befach/backend/env/lib/python3.12/site-packages/autobahn/asyncio/test/test_aio_rawsocket.py	test_sersr      sF    !#K{aA""7==#9:AH1    c                    t               }t               }t               }||_        |j                  |       d}|j	                  |       |j                  d       t        |j                        dk(  sJ |j                  d       |j                  j                  t        d      t        d      g       |j                          |j                          d}|j	                  |dd        |j                  rJ |j	                  |dd        |j                  rJ |j	                  |dd        |j                  rJ |j	                  |dd	        |j                  d
       |j                          |j                          d}|j	                  |       |j                  t        d      t        d      g       |j                  dk(  sJ y )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vHAi 'IOOI$$W-qyy>QLL OO$$d+>&?g%OP3GOOGAaL!OOGAaL!OOGAbM"OOGBrN#$$_5[LOOL!tG}d8n=>99r   c                 t    G d dt               } |       }t               }t               }t               }||_        ||_        |j                  j                         sJ |j                  |       |j                  j                         rJ |j                  d        |j                  j                         sJ y )Nc                       e Zd Zed        Zy)test_is_closed.<locals>.CPc                      yN    selfs    r   serializer_idz(test_is_closed.<locals>.CP.serializer_idC       r   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    $  TFFEIvH$F$)F!  """
9%$$&&&
4   """r   c                    t               }t        d      }t               }t               }t               }||_        ||_        ||_        ||_        |j                  |       d}|j                  |       |j                  d       |j                          |j                  j                  sJ |j                  j                  d       |j                  j                  rJ |j                  d       y )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FEIvH!$F$F$)F!$F
9%	6B
"	!!#??!!!!OO++,?@%%%%$$W-r   c                 n   t               }t        d      }t               }t               }t               }||_        ||_        ||_        ||_        |j                  |       |j                  d       |j                  j                          t               }t        d      }t               }t        d      }t               }||_        ||_        ||_        ||_        |j                  |       |j                  d       |j                  j                          |j                  j                  d       y )	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   s    %&F
D
!CFEIvH!$F$F$)F!$F
9%
#OO++-$&F
E
"CFEBCIvH!$F$F$)F!$F
9%
,-OO++-OO++,?@r   c                     G d dt               } |       }t               }t               }t               }||_        ||_        |j	                  |       |j                  d       |j                          |j                  j                  sJ |j                  j                  d       |j                  j                  rJ |j                  d       y )Nc                       e Zd Zed        Zy)#test_raw_socket_client1.<locals>.CPc                      y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    $  TFFEIvH$F$)F!
9%
FG	!!#??!!!!OO##$78%%%%$$W-r   c                     G d dt               } |       }t               }t        d      }t               }||_        ||_        |j	                  |       |j                  d       |j                  j                          y )Nc                       e Zd Zed        Zy)(test_raw_socket_client_error.<locals>.CPc                      y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      sn    $  TFFEBCIvH$F$)F!
9%
,-OO++-r   c           
      p   t        d      }t        fd      |_        t        ddg      fd}g  t        |             }|j                  |       |j                  j
                  d	u sJ |j                  j                  t        j                  k(  sJ |j                  j                  sJ |j                  j                  d
   j                  }|j                  t        t        dd|z  ddg                   |j                  sJ j                   j#                  |       |j%                  t'        j(                  d             d
d  D ]  }|j                  |        j*                  j,                  sJ t/        j*                  j0                  d   d   t&        j(                        sJ y )Nabortr   r'   rX   rY   c                 &    j                  |       S Nappendr   messagess    r   <lambda>z"test_wamp_server.<locals>.<lambda>       1Cr   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      st   KLI'CDIO+./F H3&{35E	)$"",,444""226F6`6````==%%%%""1%==A	itaxA(>?@A
MM))%0	JJw}}W%&ab\A """"f&&003A6FFFr   c           
      &   t        d      }t        fd      |_        t        ddg      fd}g  t        |             }|j                  |       |j                  j
                  d	u sJ |j                  j                  t        j                  k(  sJ |j                  sJ |j                  j                  }|j                  t        t        d
d|z  ddg                   j                  j                  |       |j!                  t#        j$                  d             dd  D ]  }|j                  |        j&                  j(                  sJ t+        j&                  j,                  d   d   t"        j$                        sJ y )Nrh   rY   c                 &    j                  |       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      sX   KLI'CDIO+./F H3&{35E	)$"",,555""226F6`6````11A	itaxA(>?@A
MM))%0	JJw}}W%&ab\A """"f&&003A6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      sD    	 $; ; 1 ! 0 

}e<<E`a b 

}e<<E`a'  b' T 

}e<<E`a# b#( 

}e<<E`a. b.0 

}e<<E`aA bA< 

}e<<E`a. b., 

}e<<E`a. b.$ 

}e<<E`aG bG6 

}e<<E`aG bGr   