
    bi	                         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
 ej                  d        Zej                  d        Zd Zd Zd Zd	 Zd
 Zy)    N)	MagicMockpatch)GPUUtilizationWebSocketHandlerGPUUsageWebSocketHandlerGPUResourceWebSocketHandler NVLinkThroughputWebSocketHandlerPCIStatsWebSocketHandlerc                 >    t               }| j                  d|       |S )NzDjupyterlab_nvdashboard.apps.gpu.CustomWebSocketHandler.write_message)r   setattr)monkeypatchmocks     i/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jupyterlab_nvdashboard/tests/test_gpu_handlers.pymock_handlerr      s$    ;DN K    c               #      K   t        d      5 } t        d      5 }ddi}|| _        | |f d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY ww)Nztornado.web.Applicationz"tornado.httputil.HTTPServerRequestbase_url/)r   settings)mock_applicationmock_requestmock_settingss      r   handler_argsr      sm      	'(	-,<23	-7C 
 %2!,,	- 	- 	- 	- 	- 	-s/   AA	=A		AA	A		AAc                     t        | }|j                          | j                  \  }}t        j                  |d         }d|v sJ y )Nr   gpu_utilization)r   	send_data	call_argsjsonloadsr   r   handlerargs_datas         r   test_gpu_utilization_handlerr$   &   sG    ,l;G$$GD!::d1gD$$$r   c                     t        | }|j                          | j                  \  }}t        j                  |d         }d|v sJ d|v sJ y )Nr   memory_usagetotal_memory)r   r   r   r   r   r   s         r   test_gpu_usage_handlerr(   .   sU    &5G$$GD!::d1gDT!!!T!!!r   c                     t        | }|j                          | j                  \  }}t        j                  |d         }d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ d|v sJ y )	Nr   timegpu_utilization_totalgpu_memory_totalrx_totaltx_totalgpu_memory_individualgpu_utilization_individual)r   r   r   r   r   r   s         r   test_gpu_resource_handlerr1   7   s    )<8G$$GD!::d1gDT>>"d***%%%"d***'4///r   c                     t        | }|j                          | j                  \  }}t        j                  |d         }d|v sJ d|v sJ d|v sJ y )Nr   	nvlink_rx	nvlink_txmax_rxtx_bw)r   r   r   r   r   r   s         r   test_nvlink_throughput_handlerr6   E   sc    .=G$$GD!::d1gD$$D   r   c                     t        | }|j                          | j                  \  }}t        j                  |d         }d|v sJ d|v sJ d|v sJ y )Nr   pci_txpci_rxmax_rxtx_tp)r	   r   r   r   r   r   s         r   test_pci_stats_handlerr;   O   sc    &5G$$GD!::d1gDttD   r   )r   pytestunittest.mockr   r   jupyterlab_nvdashboard.apps.gpur   r   r   r   r	   fixturer   r   r$   r(   r1   r6   r;    r   r   <module>rA      sa      *    
- 
-%"0!!r   