o
    -h�jG  ã                   @   sV   d dl Zd dlm  mZ d dlZd dlZd dlm	Z	 d dl
mZ dd„ Zdd„ ZdS )é    N)Ú
TestClient)Úactive_sessionsc                 C   sN  dt  ¡ jd d… › d�}| jd|ddœd�}| ¡ d }d	d
|› �i}| jdd|i|d�}| ¡ d }|tv}|swt d|fd|tf¡dt 	¡ v sOt 
|¡rTt |¡nddt 	¡ v s`t 
t¡ret t¡nddœ }dd|i }	tt |	¡ƒ‚d }|  d|› �¡�Ñ}
|tv }|sÅt d|fd|tf¡dt 	¡ v s�t 
|¡r¢t |¡nddt 	¡ v s®t 
t¡r³t t¡nddœ }dd|i }	tt |	¡ƒ‚d }t| d }||k}|�st d|fd||f¡t |¡dt 	¡ v sít 
|¡ròt |¡nddœ }dd|i }tt |¡ƒ‚d  }}t| d }||k}|�sGt d|fd||f¡t |¡dt 	¡ v �s0t 
|¡�r5t |¡nddœ }dd|i }tt |¡ƒ‚d  }}W d   ƒ n	1 �sVw   Y  |tv}|�s£t d|fd|tf¡dt 	¡ v �syt 
|¡�r~t |¡nddt 	¡ v �sŒt 
t¡�r‘t t¡nddœ }dd|i }	tt |	¡ƒ‚d }d S )Nzws-é   z.comz/api/v1/tenant/registerzWS Test Store)ÚdomainÚname)ÚjsonÚsiteIdÚOriginzhttp://z/api/v1/session/init)r   ÚheadersÚ	sessionId©únot in©z%(py0)s not in %(py2)sÚ
session_idr   ©Úpy0Úpy2úassert %(py4)sÚpy4ú/ws/session/)Úin)z%(py0)s in %(py2)s)ú==)z%(py1)s == %(py3)sÚsite_id)Úpy1Úpy3zassert %(py5)sÚpy5)ÚuuidÚuuid4ÚhexÚpostr   r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚwebsocket_connect)Úclientr   Úreg_respr   r
   Ú	init_respr   Ú@py_assert1Ú@py_format3Ú@py_format5Ú	websocketÚ@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6© r4   ú5/web/html/dev/chatbot/backend/tests/test_websocket.pyÚ%test_websocket_presence_valid_session   s    
þŠŠ‚ˆü˜r6   c              	   C   sì   d}t  t¡�  |  d|› �¡� W d   ƒ n1 sw   Y  W d   ƒ n1 s*w   Y  |tv}|srt d|fd|tf¡dt ¡ v sJt 	|¡rOt 
|¡nddt ¡ v s[t 	t¡r`t 
t¡nddœ }dd	|i }tt |¡ƒ‚d }d S )
NÚsess_nonexistent_000r   r   r   Úunknown_session_idr   r   r   r   )ÚpytestÚraisesÚ	Exceptionr(   r   r    r!   r"   r#   r$   r%   r&   r'   )r)   r8   r,   r-   r.   r4   r4   r5   Ú'test_websocket_presence_unknown_session    s   ÿ€ÿŽr<   )Úbuiltinsr"   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter    r   r9   Úfastapi.testclientr   Úapp.services.presencer   r6   r<   r4   r4   r4   r5   Ú<module>   s   " 