
    Mh                         d Z ddlZddlZddlZddlmZ ddlZddlZd
dZej	        d             Z
 G d d          Zej        j         G d d	                      ZdS )zTest the kernels service API.    N)TemporaryDirectoryc                    | j         }t          |t          j        j                  r$||j        k    rdS |du p|t          |          k    S t          t          |t          j        j	                  t          |t          j        j                  g          rO||j
        k    rdS |r>t          j        |j        j                                                  d         }||k    rdS dS dS )z7Check that the error matches the expected output error.FNmessageT)value
isinstancetornadoweb	HTTPErrorstatus_codestrany
httpclientHTTPClientErrorcodejsonloadsresponsebodydecode)errorexpected_codeexpected_messageer   s        _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyterlab/tests/test_build_api.pyexpected_http_errorr      s    A!W[*++ AM))54'E+;s1vv+EE	q',<==q',677	

 
  AF""5 	j!7!7!9!9::9EG7**ut     c                 "    t          ||          S N)BuildAPITester)jp_serverapplabapp
fetch_longs      r   build_api_testerr#   %   s    &*---r   c                   6    e Zd ZdZdZd Zd	dZd Zd Zd Z	dS )
r   z#Wrapper for build REST API requestszlab/api/buildc                 "    || _         || _        d S r   )r!   fetch)selfr!   r"   s      r   __init__zBuildAPITester.__init__/   s    


r   Nc                 R   K   |                      | j        |z   ||           d {V S )N)methodr   )r&   url)r'   verbpathr   s       r   _reqzBuildAPITester._req3   s6      ZZ44ZHHHHHHHHHr   c                 >   K   |                      dd           d {V S )NGET r.   r'   s    r   	getStatuszBuildAPITester.getStatus6   s,      YYub)))))))))r   c                 d   K   |                      ddt          j        i                      d {V S )NPOSTr1   )r.   r   dumpsr3   s    r   buildzBuildAPITester.build9   s6      YYvr4:b>>:::::::::r   c                 >   K   |                      dd           d {V S )NDELETEr1   r2   r3   s    r   clearzBuildAPITester.clear<   s,      YYx,,,,,,,,,r   r   )
__name__
__module____qualname____doc__r+   r(   r.   r4   r8   r;    r   r   r   r   *   ss        --
C     I I I I* * *; ; ;- - - - -r   r   c                       e Zd Zd Zd Zd Zej                            e	j
        dk    d          d             Zej                            e	j
        dk    d          d             Zd	S )
TestBuildAPIc                 `    t                      }| j                            |           |j        S r   )r   tempdirsappendname)r'   tds     r   tempdirzTestBuildAPI.tempdirB   s*    !!R   wr   c                 :     g  _          j         fd            }d S )Nc                  D    j         D ]} |                                  d S r   )rD   cleanup)dr'   s    r   cleanup_tempdirsz,TestBuildAPI.setUp.<locals>.cleanup_tempdirsM   s-    ]  		 r   )rD   
addCleanup)r'   rM   s   ` r   setUpzTestBuildAPI.setUpG   s=      
	 	 	 	 
	 	 	r   c                    K   |                                  d{V }|j                                        }t          j        |          }d|v sJ d|v sJ dS )z3Make sure there are no kernels running at the startNstatusr   )r4   r   r   r   r   )r'   r#   rresresps        r   test_get_statuszTestBuildAPI.test_get_statusT   sm      ",,........fmmooz#4D      r   ntzCurrently failing on windows)reasonc                 X   K   |                                  d {V }|j        dk    sJ d S )N   )r8   r   )r'   r#   rR   s      r   
test_buildzTestBuildAPI.test_build^   s<      "((********v}}}}}}r   c                 z  K   t          j        t          j        j                  5 }|                                 d {V }|j                                        }d d d            n# 1 swxY w Y   t          |d          sJ t          j
                    }t          j        |                                |           	 |                                 d {V }|j                                        }t          j        |          }|d         dk    rnU|                                 d {V }|j        dk    sJ d S )Ni  )loopTrQ   building   )pytestraisesr   r   r   r;   r   r   r   asyncioget_event_loopensure_futurer8   r4   r   r   r   )r'   r#   r   rR   rS   r\   rT   s          r   
test_clearzTestBuildAPI.test_cleare   s|     ]7-=>> 	"!&,,........A&--//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" #1c*****%''.4466TBBBB	&0022222222A&--//C:c??DH~++	 #((********v}}}}}}s   4A&&A*-A*N)r<   r=   r>   rH   rO   rU   r_   markskipifosrF   rZ   rd   r@   r   r   rB   rB   @   s          
	 	 	! ! ! [40NOO  PO [40NOO  PO  r   rB   r   )r?   ra   r   rg   tempfiler   r_   r   r   fixturer#   r   re   slowrB   r@   r   r   <module>rk      s    $ #   				 ' ' ' ' ' '     , . . .- - - - - - - -, 6 6 6 6 6 6 6 6 6 6r   