o
    rri                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlZddlm	Z	 ej
dddgdedee d	dfd
dZdddZded	efddZded	dfddZdddZdddZded	dfddZdddZdddZded	dfddZdS )     N)Path)Optional   )utilsexisting_contentblublutmp_pathreturnc                 C   s   | d }|r| | t| }t|dsJ | d |r)| |ks)J W d    n1 s3w   Y  | dks@J d S )Nzsave_and_move_test.txtz.txt.save_tmp12)
write_textr   temporary_save_pathstrendswith	read_text)r   r   filepathtmp r   L/home/ubuntu/.local/lib/python3.10/site-packages/submitit/core/test_utils.pytest_temporary_save_path   s   

r   c                	   C   sj   t t& td W d    n1 sw   Y  W d    d S W d    d S 1 s.w   Y  d S )Nsave_and_move_test)pytestraisesFileNotFoundErrorr   r   r   r   r   r   test_temporary_save_path_error   s   "r   xc                 C   s   d|  S )N   r   )r   r   r   r   _three_time%   s   r   c                 C   sb   t td}| rJ | dksJ | sJ | d }|| t j|}| s/J d S )N      ztest_delayed.pkl)r   DelayedSubmissionr   doneresultdumpload)r   delayeddelayed_pkldelayed2r   r   r   test_delayed)   s   
r'   c               	   C   s   d} | t jvs	J tjdd9 t j|  dksJ tjdd t j|  dks)J W d    n1 s3w   Y  t j|  dksAJ W d    n1 sKw   Y  | t jvsWJ d S )NENV_VAR_TESTr   )r(   blublu2)osenvironr   environment_variables)namer   r   r   !test_environment_variable_context4   s   r.   c                  C   s"   d} t j| }|jdksJ d S )Nztest/truc/machin_%j/nametruc)r   JobPathsget_first_id_independent_folderr-   )pathoutputr   r   r   test_slurmpaths_id_independent?   s   r4   c                 C   sH   t jttjg| dd tjt| d| d | d 	 s"J d S )Nz.tar.gz)outfile)extract_dircore)
r   archive_dev_foldersr   __file__parentwith_suffixshutilunpack_archiver   existsr   r   r   r   test_archive_dev_foldersE   s   r@   c                  C   s   t jddg} d}t| |}|d usJ ||v sJ tjtjdd tj| dddd W d    d S 1 s9w   Y  d S )	Nz-mzsubmitit.core.test_coretestblublu12zToo bad)matchT)verbose)error)sys
executabler   CommandFunctionr   r   FailedJobError)commandwordr3   r   r   r   test_command_functionK   s   "rK   c                 C   sz   d}t tjd|jddg}| jdd | |}d| v s"J t dd|jd	dg}| |}d
| v s;J d S )Nz
import sys;
print(sys.__stderr__)
# The goal here is to fill up the stderr pipe buffer.
for i in range({n}):
    print("-" * 1024, file=sys.stdout)
print("printed {n} lines to stderr")
z-c
   )ng?)timeout_minz10 linespythoni  z
1000 lines)r   rG   rE   rF   formatupdate_parameterssubmitr!   )executorcodefn1j1fn2j2r   r   r   test_command_function_deadlockW   s   

rY   c                 C   s\   t | dj| d ksJ t | ddj| d ksJ t | d dj| d d ks,J d S )	N123z123_0_log.outr   z123_1_log.outzarray-%A-index-%a456_3zarray-456-index-3z456_3_0_log.out)r   r0   stdoutr?   r   r   r   test_jobpathsj   s
   
r]   )r	   N)r*   r<   rE   pathlibr   typingr   r    r   markparametrizer   r   r   intr   r'   r.   r4   r@   rK   rY   r]   r   r   r   r   <module>   s$   




