o
    i                     @   s   d Z ddlZddlZddlZddlZddlZddlZddlZddl	Z	ej
Z
ejZe	jjZejjZejZejjZejjZejjZejZdd Z		dddZdS )	z
Helper for testing.
    Nc                     s   t j d fdd	} | t _dS )z& Redirect all warnings to stdout.
    Nr   c                    s    | |t j||tj d S )N)ospathbasenamesysstdout)msgcatfnamelnofilelineshowwarning_orig I/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/joblib/testing.pyshowwarning    s   z'warnings_to_stdout.<locals>.showwarning)Nr   )warningsr   )r   r   r   r   warnings_to_stdout   s   
r      c           	         s   t j t jt jd fdd}z_|dur t||}|   \}}| | }}jdkr@d	j||}t
||durRt||sRt
d	|||durdt||sdt
d	||W |duro|  dS dS |durz|  w w )	zRuns a command in a subprocess with timeout in seconds.

    Also checks returncode is zero, stdout if stdout_regex is set, and
    stderr if stderr_regex is set.
    )r   stderrc                      s   t d    d S )NzTimeout running {})r   warnformatkillr   cmdprocr   r   kill_process1   s   z+check_subprocess_call.<locals>.kill_processNr   z/Non-zero return code: {}.
Stdout:
{}
Stderr:
{}z,Unexpected stdout: {!r} does not match:
{!r}z,Unexpected stderr: {!r} does not match:
{!r})
subprocessPopenPIPE	threadingTimerstartcommunicatedecode
returncoder   
ValueErrorresearchcancel)	r   timeoutstdout_regexstderr_regexr   timerr   r   messager   r   r   check_subprocess_call'   sN   




r/   )r   NN)__doc__r   r   os.pathr   r'   r   r    pytest_pytestraiseswarnsrunnerSkippedSkipTestmarkskipiffixtureparametrizer*   xfailparamr   r/   r   r   r   r   <module>   s,    