
    ^h                         S r SSKrSSKrSSKrSSKJr  SSKrSSKrS
S jr\R                  S 5       r
 " S S5      r\R                  R                   " S S	5      5       rg)zTest the kernels service API.    N)TemporaryDirectoryc                    U R                   n[        U[        R                  R                  5      (       a)  XR
                  :w  a  gUSL =(       d    U[        U5      :H  $ [        [        U[        R                  R                  5      [        U[        R                  R                  5      /5      (       aY  XR                  :w  a  gU(       aA  [        R                  " UR                  R                  R                  5       5      S   nX$:w  a  ggg)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        Y/home/james-whalen/.local/lib/python3.13/site-packages/jupyterlab/tests/test_build_api.pyexpected_http_errorr      s    A!W[[**++MM)4'E+;s1v+EE	q',,<<=q',,667	

 
 FF"jj!7!7!9:9EG*
    c                     [        X5      $ N)BuildAPITester)jp_serverapplabapp
fetch_longs      r   build_api_testerr#   %   s    &--r   c                   >    \ rS rSrSrSrS rSS jrS rS r	S	 r
S
rg)r   *   z#Wrapper for build REST API requestszlab/api/buildc                     Xl         X l        g r   )r!   fetch)selfr!   r"   s      r   __init__BuildAPITester.__init__/   s    
r   Nc                 X   #    U R                  U R                  U-   XS9I S h  vN $  N7f)N)methodr   )r'   url)r(   verbpathr   s       r   _reqBuildAPITester._req3   s&     ZZ4ZHHHHs   !*(*c                 B   #    U R                  SS5      I S h  vN $  N7f)NGET r0   r(   s    r   	getStatusBuildAPITester.getStatus6   s     YYub))))   c                 l   #    U R                  SS[        R                  " 0 5      5      I S h  vN $  N7f)NPOSTr4   )r0   r   dumpsr6   s    r   buildBuildAPITester.build9   s&     YYvr4::b>::::s   +424c                 B   #    U R                  SS5      I S h  vN $  N7f)NDELETEr4   r5   r6   s    r   clearBuildAPITester.clear<   s     YYx,,,,r9   )r'   r!   r   )__name__
__module____qualname____firstlineno____doc__r-   r)   r0   r7   r=   rA   __static_attributes__ r   r   r   r   *   s$    -
C I*;-r   r   c                       \ rS rSrS rS rS r\R                  R                  \
R                  S:H  SS9S 5       r\R                  R                  \
R                  S:H  SS9S	 5       rS
rg)TestBuildAPI@   c                 d    [        5       nU R                  R                  U5        UR                  $ r   )r   tempdirsappendname)r(   tds     r   tempdirTestBuildAPI.tempdirB   s%    !R wwr   c                 >   ^  / T l         T R                  U 4S j5       ng )Nc                  L   > TR                    H  n U R                  5         M     g r   )rN   cleanup)dr(   s    r   cleanup_tempdirs,TestBuildAPI.setUp.<locals>.cleanup_tempdirsM   s    ]]		 #r   )rN   
addCleanup)r(   rX   s   ` r   setUpTestBuildAPI.setUpG   s$      
	 
	r   c                    #    UR                  5       I Sh  vN nUR                  R                  5       n[        R                  " U5      nSU;   d   eSU;   d   eg NE7f)z3Make sure there are no kernels running at the startNstatusr   )r7   r   r   r   r   )r(   r#   rresresps        r   test_get_statusTestBuildAPI.test_get_statusT   sS     ",,..ffmmozz#4D   	 /s   AAAAntzCurrently failing on windows)reasonc                 d   #    UR                  5       I S h  vN nUR                  S:X  d   eg  N7f)N   )r=   r   )r(   r#   r_   s      r   
test_buildTestBuildAPI.test_build^   s+     "((**vv}} +s   0.0c                   #    [         R                  " [        R                  R                  5       nUR                  5       I S h  vN nUR                  R                  5       nS S S 5        [        WS5      (       d   e[        R                  " 5       n[        R                  " UR                  5       US9   UR                  5       I S h  vN nUR                  R                  5       n[        R                  " U5      nUS   S:X  a  OMT  UR                  5       I S h  vN nUR                   S:X  d   eg  N! , (       d  f       N= f N~ N,7f)Ni  )loopr^   building   )pytestraisesr   r   r   rA   r   r   r   asyncioget_event_loopensure_futurer=   r7   r   r   r   )r(   r#   r   r_   r`   rk   ra   s          r   
test_clearTestBuildAPI.test_cleare   s     ]]7--==>!&,,..A&&--/C ? #1c****%%'.446TB&0022A&&--/C::c?DH~+  #((**vv}} / ?> 3 +sN   /ED9D7D9$A'EE
AEE E7D99
EEE)rN   N)rC   rD   rE   rF   rR   r[   rb   rn   markskipifosrP   rh   rs   rH   rI   r   r   rK   rK   @   su    
	! [[40NO P [[40NO Pr   rK   r   )rG   rp   r   rw   tempfiler   rn   r   r   fixturer#   r   ru   slowrK   rI   r   r   <module>r{      sf    $   	 '  , . .- -, 6 6 6r   