
    #Sh                         d dl Z d dlmZ d dlZddlmZ ddlmZ ddlm	Z	 ded	dfd
Z
ded	dfdZded	dfdZded	dfdZded	dfdZded	dfdZded	dfdZded	dfdZded	dfdZded	dfdZddZdS )    N)Path   )debug)
test_slurm   )autotmp_pathreturnc                    |                     t          j        dd            t          j                    5  t          j        |           }d d d            n# 1 swxY w Y   |j        dk    sJ |                    ddd           |j	        j
        }|d	dd
k    sJ t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )N_valid_parametersc                      dhS Nblabla r       ]/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/submitit/auto/test_auto.py<lambda>z%test_slurm_executor.<locals>.<lambda>       8* r   folderslurmr   machinblublu)mem_gbnamedebug_blabla2GB)memjob_namez2.0GB)r   g       @)r   )slurm_host_filterz#debug_blublu.*\n.*local_num_threadsmatch   )debug_blublulocal_num_threads)setattrr   DebugExecutorr   mocked_slurmr   AutoExecutorclusterupdate_parameters	_executor
parameterspytestraisesAssertionError	NameError)r	   monkeypatchexecutorparamss       r   test_slurm_executorr5      s   +-@BTBTUUU		 	"	" 6 6$H5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6w&&&& ahXNNN*FU999999 
~	&	& 3 3""'"2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
y	!	! / /""#".../ / / / / / / / / / / / / / / 
y	!	! ? ?""X">>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
y(N	O	O	O J J""q"IIIJ J J J J J J J J J J J J J J J J JsY   AAA8CC"C?D""D&)D&E))E-0E-F44F8;F8c                     t          j                    5  t          j        | d          }d d d            n# 1 swxY w Y   |j        dk    sJ d S )Nlocalr   r*   )r   r(   r   r)   r*   r	   r3   s     r   test_local_executorr:   *   s    		 	"	" G G$HgFFFG G G G G G G G G G G G G G Gw&&&&&&   7;;c                 X    t          j        | dd          }|j        j        dk    sJ d S )Nr7   gQ?)r   r*   local_max_pickle_size_gb)r   r)   r,   max_pickle_size_gb)r	   exs     r   test_max_pickle_size_gb_in_autor@   0   s6    		(GVZ	[	[	[B<*d222222r   c                     t          j        | dt          j                  }|                    d           }|                                dk    sJ d S )Nr7   )r   r*   local_pythonc                      dS )N   r   r   r   r   r   z&test_python_executor.<locals>.<lambda>7   s    " r   rD   )r   r)   sys
executablesubmitresultr	   r3   jobs      r   test_python_executorrK   5   sO     'PSP^___H
//**
%
%C::<<2r   c                 &   t          j                    5  t          j        | d          }d d d            n# 1 swxY w Y   t	          |j        dd           dk    sJ t          j        | dd          }t	          |j        dd           dk    sJ d S )N   )r   slurm_max_num_timeoutmax_num_timeoutr7   )r   r*   rN   )r   r(   r   r)   getattrr,   r9   s     r   test_executor_argumentrQ   ;   s    		 	"	" P P$HBOOOP P P P P P P P P P P P P P P8%'8$??2EEEE  'Y[\\\H8%'8$??2EEEEEEr;   c                     t          j                    5  t          j        t                    5  t          j        | d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrM   )r   slurm_foobar)r   r(   r.   r/   	TypeErrorr   r)   r	   s    r   test_executor_unknown_argumentrV   E   s   		 	"	" @ @]9%% 	@ 	@XB????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s4   A)AA)A	A)A	A))A-0A-c                     t          j                    5  t          j        t          d          5  t          j        | d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrN   r!   rM   )r   rO   )r   r(   r.   warnsUserWarningr   r)   rU   s    r   "test_executor_deprecated_argumentsrZ   K   s   		 	"	" C C\+-DEEE 	C 	CXrBBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	CC C C C C C C C C C C C C C C C C Cs4   A+AA+A	A+A	A++A/2A/c                 z   |                     t          j        dd            t          j                    5  t          j        |           }d d d            n# 1 swxY w Y   |j        dk    sJ t          j	        t          d          5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Nr   c                      dhS r   r   r   r   r   r   z*test_deprecated_argument.<locals>.<lambda>R   r   r   r   r   zblabla.*debug_blablar!   r   r   )r   r   )r&   r   r'   r   r(   r   r)   r*   r.   rX   rY   r+   )r	   r2   r3   s      r   test_deprecated_argumentr]   Q   sB   +-@BTBTUUU		 	"	" 6 6$H5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6w&&&& 
k)@	A	A	A > >""!H"===> > > > > > > > > > > > > > > > > >s#   AAAB00B47B4c                 B   t          j                    5  t          j        | d          }d d d            n# 1 swxY w Y   |                    dddd           |j        j        }|dddk    sJ t          j        | d	          }|                    dd
           d S )Nr   r8   <   x   r      )timeout_minslurm_timeout_mintasks_per_nodeslurm_ntasks_per_node)timentasks_per_noder7   )rb   
slurm_time)r   r(   r   r)   r+   r,   r-   )r	   slurm_exslurm_paramslocal_exs       r   test_overriden_argumentsrl   \   s   		 	"	" G G$HgFFFG G G G G G G G G G G G G G G #aWX     %0LCA>>>>>>  'BBBH2#>>>>>r;   c                 D   t          j                    5  t          j        |           }|                                5  |                    t          d          }d d d            n# 1 swxY w Y   |                                rJ 	 d d d            d S # 1 swxY w Y   d S )Nr   hi)r   r(   r   r)   batchrG   printdonerI   s      r   test_auto_batch_watcherrr   l   s   		 	"	"  $H555^^ 	/ 	///%..C	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/88::~	                 s4   *BA&B&A*	*B-A*	.BBBc                    d }|                      d           |                     |          }|                                 |                                J |                                }d|v sJ d|v sJ |                      d           |                     |          }|                                 d|                                v sJ d|                                v sJ d S )Nc                  Z    t          d           t          dt          j                   d S )Nhelloworld)file)rp   rE   stderrr   r   r   log_to_stderr_and_stdoutz=test_redirect_stdout_stderr.<locals>.log_to_stderr_and_stdoutu   s(    ggCJ''''''r   T)stderr_to_stdoutru   rv   F)r+   rG   waitrx   stdout)r3   ry   rJ   r|   s       r   test_redirect_stdout_stderrr}   t   s    ( ( ( 555
//2
3
3CHHJJJ::<<ZZ\\Fff666
//2
3
3CHHJJJcjjll""""cjjll""""""r   )r
   N)rE   pathlibr   r.   r7   r   r   r    r   r5   r:   r@   rK   rQ   rV   rZ   r]   rl   rr   r}   r   r   r   <module>r      s   


                         J$ J J J J J2'$ '4 ' ' ' '3d 3t 3 3 3 3
4 D    FT Fd F F F F@T @d @ @ @ @C C$ C C C C>t >T > > > >?t ? ? ? ? ? d t    # # # # # #r   