o
    èó·i¨  ã                   @   sÀ   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dd„ Zej	j
e j dd¡ dd	�ej	jd
d„ ƒƒZej	j
e j dd¡ dd	�dd„ ƒZej	j
e j dd¡ dd	�ej	jdd„ ƒƒZdS )é    N)ÚMock)ÚWebSocketServerFactoryc                 Ã   s   �t  |¡I d H  | S ©N©ÚasyncioÚsleep)ÚwhatÚwhen© r
   únC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\autobahn/asyncio/test/test_aio_websocket.pyÚ
echo_async   s   €r   ZUSE_ASYNCIOFztest runs on asyncio only)Úreasonc                   Ã   s   �dt ddƒI d H ksJ ‚d S )NzHello!r   )r   r
   r
   r
   r   Útest_echo_async   s   €r   c                 C   s$   t | d�}|ƒ }tƒ }| |¡ d S )N)Úloop)r   r   Úconnection_made)Ú
event_loopÚfactoryÚserverÚ	transportr
   r
   r   Útest_websocket_custom_loop   s   
r   c                 ƒ   s˜   �d‰t  ¡ ‰ g ‰dd„ ‰‡ ‡‡‡fdd„}tƒ }|ƒ }||_tƒ }| |¡ d g d¢¡|_| ¡  ˆ I d H  t	ˆƒdks@J ‚ˆd	 ˆˆ ksJJ ‚d S )
Né*   c                 Ó   s   �t  d¡I d H  | |  S )Né   r   )Úxr
   r
   r   Úfoo)   s   €z)test_async_on_connect_server.<locals>.fooc                 “   s*   �ˆˆƒI d H }ˆ  |¡ t ˆ | ¡ d S r   )ÚappendÚtxaioÚresolve)ÚreqÚv©Údoner   ÚnumÚvaluesr
   r   Ú
on_connect-   s   €
z0test_async_on_connect_server.<locals>.on_connectó   
)	s   GET /ws HTTP/1.1s   Host: www.example.coms   Sec-WebSocket-Version: 13s,   Origin: http://www.example.com.malicious.coms,   Sec-WebSocket-Extensions: permessage-deflates+   Sec-WebSocket-Key: tXAxWFUqnhi86Ajj7dRY5g==s   Connection: keep-alive, Upgrades   Upgrade: websocketr$   r   r   )
r   Úcreate_futurer   Z	onConnectr   r   ÚjoinÚdataZprocessHandshakeÚlen)r   r#   r   r   r   r
   r   r   Útest_async_on_connect_server!   s    €

r)   )Úosr   Zpytestr   Zunittest.mockr   Zautobahn.asyncio.websocketr   r   ÚmarkZskipifÚenvironÚgetr   r   r)   r
   r
   r
   r   Ú<module>   s    
