
    Xh                         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y)zTest the kernels service API.    N)TemporaryDirectoryc                    | j                   }t        |t        j                  j                        r$||j
                  k7  ry|du xs |t        |      k(  S t        t        |t        j                  j                        t        |t        j                  j                        g      rS||j                  k7  ry|r@t        j                  |j                  j                  j                               d   }||k7  ryyy)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        S/var/www/html/myenv/lib/python3.12/site-packages/jupyterlab/tests/test_build_api.pyexpected_http_errorr      s    A!W[[**+AMM)4'E+;s1v+EE	q',,<<=q',,667	

 AFF"jj!7!7!9:9EG7*
    c                     t        ||      S N)BuildAPITester)jp_serverapplabapp
fetch_longs      r   build_api_testerr#   %   s    &*--r   c                   4    e Zd ZdZdZd Zd	dZd Zd Zd Z	y)
r   z#Wrapper for build REST API requestszlab/api/buildc                      || _         || _        y r   )r!   fetch)selfr!   r"   s      r   __init__zBuildAPITester.__init__/   s    
r   Nc                 `   K   | j                  | j                  |z   ||       d {   S 7 w)N)methodr   )r&   url)r'   verbpathr   s       r   _reqzBuildAPITester._req3   s)     ZZ44ZHHHHs   %.,.c                 B   K   | j                  dd       d {   S 7 w)NGET r.   r'   s    r   	getStatuszBuildAPITester.getStatus6   s     YYub))))   c                 j   K   | j                  ddt        j                  i              d {   S 7 w)NPOSTr1   )r.   r   dumpsr3   s    r   buildzBuildAPITester.build9   s'     YYvr4::b>::::s   *313c                 B   K   | j                  dd       d {   S 7 w)NDELETEr1   r2   r3   s    r   clearzBuildAPITester.clear<   s     YYx,,,,r5   r   )
__name__
__module____qualname____doc__r+   r(   r.   r4   r9   r<    r   r   r   r   *   s$    -
C I*;-r   r   c                       e Zd Zd Zd Zd Zej                  j                  e	j                  dk(  d      d        Zej                  j                  e	j                  dk(  d      d        Zy	)
TestBuildAPIc                 d    t               }| j                  j                  |       |j                  S r   )r   tempdirsappendname)r'   tds     r   tempdirzTestBuildAPI.tempdirB   s%    !R wwr   c                 <     g  _          j                   fd       }y )Nc                  H    j                   D ]  } | j                           y r   )rE   cleanup)dr'   s    r   cleanup_tempdirsz,TestBuildAPI.setUp.<locals>.cleanup_tempdirsM   s    ]] 		r   )rE   
addCleanup)r'   rN   s   ` r   setUpzTestBuildAPI.setUpG   s$      
	 
	r   c                    K   |j                          d{   }|j                  j                         }t        j                  |      }d|v sJ d|v sJ y7 @w)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   sT     ",,..ffmmozz#4D   	 /s   AAAAntzCurrently failing on windows)reasonc                 b   K   |j                          d {   }|j                  dk(  sJ y 7 w)N   )r9   r   )r'   r#   rS   s      r   
test_buildzTestBuildAPI.test_build^   s,     "((**vv}} +s   /-/c                   K   t        j                  t        j                  j                        5 }|j                          d {   }|j                  j                         }d d d        t        d      sJ t        j                         }t        j                  |j                         |       	 |j                          d {   }|j                  j                         }t        j                  |      }|d   dk(  rnQ|j                          d {   }|j                   dk(  sJ y 7 # 1 sw Y   xY w7 u7 &w)Ni  )looprR   building   )pytestraisesr   r   r   r<   r   r   r   asyncioget_event_loopensure_futurer9   r4   r   r   r   )r'   r#   r   rS   rT   r]   rU   s          r   
test_clearzTestBuildAPI.test_cleare   s    ]]7--==> 	"!&,,..A&&--/C	" #1c***%%'.446TB&0022A&&--/C::c?DH~+  #((**vv}} /	" 	" 3 +sN   .E D0D.D0#A#E D<AE D>E .D00D95E >E N)r=   r>   r?   rI   rP   rV   r`   markskipifosrG   r[   re   rA   r   r   rC   rC   @   su    
	! [[40NO P [[40NO Pr   rC   r   )r@   rb   r   rh   tempfiler   r`   r   r   fixturer#   r   rf   slowrC   rA   r   r   <module>rl      sf    $   	 '  , . .- -, 6 6 6r   