3
d	                 @   sL   d dl Z d dlZd dlmZmZ dd Zdd Zdd Zd	d
 Zdd Z	dS )    N)raisescheck_subprocess_callc              C   s:   dj ddddg} ttjd| g ttjd| gdd d S )	N
zresult = 1 + 2 * 3zprint(result)zmy_list = [1, 2, 3]zprint(my_list)z-cz7\s{1,2}\[1, 2, 3\])stdout_regex)joinr   sys
executable)code r
   :/tmp/pip-build-v9q4h5k9/joblib/joblib/test/test_testing.pytest_check_subprocess_call   s    r   c              C   sD   d} d}t t}ttjd| g|d W d Q R X |jdj| d S )NZ42Z_no_way_this_matches_anything_z-c)r   zUnexpected stdout.+{})r   
ValueErrorr   r   r   matchformat)r	   Znon_matching_patternexcinfor
   r
   r   -test_check_subprocess_call_non_matching_regex   s    
r   c           	   C   s&   d} t t t| g W d Q R X d S )NZ_a_command_that_does_not_exist_)r   OSErrorr   )Zwrong_commandr
   r
   r   (test_check_subprocess_call_wrong_command   s    
r   c              C   sR   dj ddddg} tjdtj}tt}ttjd| g W d Q R X |j	| d S )Nr   z
import syszprint("writing on stdout")z%sys.stderr.write("writing on stderr")zsys.exit(123)zONon-zero return code: 123.+Stdout:
writing on stdout.+Stderr:
writing on stderrz-c)
r   recompileDOTALLr   r   r   r   r   r   )Zcode_with_non_zero_exitpatternr   r
   r
   r   /test_check_subprocess_call_non_zero_return_code%   s    
r   c              C   s`   dj dddddddd	dg	} tjd
tj}tt}ttjd| gdd W d Q R X |j	| d S )Nr   zimport timez
import syszprint("before sleep on stdout")zsys.stdout.flush()z*sys.stderr.write("before sleep on stderr")zsys.stderr.flush()ztime.sleep(1.1)z-print("process should have be killed before")zVNon-zero return code:.+Stdout:
before sleep on stdout\s+Stderr:
before sleep on stderrz-c   )timeout)
r   r   r   r   r   r   r   r   r   r   )Zcode_timing_outr   r   r
   r
   r   "test_check_subprocess_call_timeout5   s     
r   )
r   r   Zjoblib.testingr   r   r   r   r   r   r   r
   r
   r
   r   <module>   s   
