U
    -e                     @   s^  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZddl	m
Z
mZ d dlmZ ejjddd ejjd	d
d ejjddejjd eje jdd	 de jd< dd ZG dd dZdd Zdd Zejdd Zejdddd Zejdd d!d" Zejddd#d$ Zejddd%d& Zejddd'd( Zejddd)d* Z dS )+    N)TemporaryDirectory   )groupsdefaultsfind_free_portcii  )max_examplesdev2   debug
   )r	   	verbosityZHYPOTHESIS_PROFILEz	/dev/nullZAWS_CONFIG_FILEc                 C   sh   ddd}t D ]T}|d|t| }| jd|d|d|d | jd|dd	d
|d qd S )Nc                 S   sP   t j|  }|s|S | }|dkr,dS |dkr8dS td|  |d S )N>   trueyyes1onT>   nofffalseno0Fz {}={} is not parsable as boolean)osenvirongetupperlower
ValueErrorformat)namedefaultvalue r#   W/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pyarrow/tests/conftest.pybool_env2   s     z"pytest_addoption.<locals>.bool_envzPYARROW_TEST_{}--enable-{}
store_truezEnable the {} test group)actionr!   help--disable-{}FzDisable the {} test group)N)r   r   r   Z	addoption)parserr%   groupr!   r#   r#   r$   pytest_addoption0   s    
  r-   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )PyArrowConfigc                 C   s
   i | _ d S N)
is_enabled)selfr#   r#   r$   __init__J   s    zPyArrowConfig.__init__c                 C   s   |j }|tkr| | d S r/   )r    r   requires)r1   markr,   r#   r#   r$   
apply_markM   s    zPyArrowConfig.apply_markc                 C   s   | j | std| d S )Nz{} NOT enabled)r0   pytestskipr   )r1   r,   r#   r#   r$   r3   R   s    
zPyArrowConfig.requiresN)__name__
__module____qualname__r2   r5   r3   r#   r#   r#   r$   r.   I   s   r.   c                 C   sX   t  | _tD ]F}| d| d|}d|}| |oD| | }|| jj|< qd S )Nmarkersr&   r*   )r.   pyarrowr   Zaddinivalue_liner   Z	getoptionr0   )configr4   Zenable_flagZdisable_flagr0   r#   r#   r$   pytest_configureW   s     


r>   c                 C   s    |   D ]}| jj| qd S r/   )Ziter_markersr=   r<   r5   )itemr4   r#   r#   r$   pytest_runtest_setuph   s    r@   c                 C   s   t | jS r/   )pathlibPathZstrpath)Ztmpdirr#   r#   r$   tempdirn   s    rC   session)scopec                   C   s   t tjd S )Ndata)rA   rB   __file__parentr#   r#   r#   r$   base_datadirt   s    rI   T)Zautousec                 C   s   |  dd dS )zStop the AWS SDK from trying to contact the EC2 metadata server.

    Otherwise, this causes a 5 second delay in tests that exercise the
    S3 filesystem.
    ZAWS_EC2_METADATA_DISABLEDr   N)Zsetenv)Zmonkeypatchr#   r#   r$   disable_aws_metadatay   s    rJ   c                  C   s8   t jdd} tt jdd}t jdd}| ||fS )NZARROW_HDFS_TEST_HOSTr!   ZARROW_HDFS_TEST_PORTr   ZARROW_HDFS_TEST_USERZhdfs)r   r   r   int)hostportuserr#   r#   r$   hdfs_connection   s    rO   c                  C   s    dt   } }d\}}| |||fS )N	localhost)arrowZapachearrowr   )rL   rM   
access_key
secret_keyr#   r#   r$   s3_connection   s    rT   c           
   	   c   s   | \}}}}d ||}tj }|||d t |}ddddd||g}d }	zDztj	||d}	W n t
k
r   td	 Y nX | |	|d
V  W 5 |	d k	r|	  |	  X W 5 Q R X d S )Nz{}:{})ZMINIO_ACCESS_KEYZMINIO_SECRET_KEYZminioz--compatserverz--quietz	--addressenvz!`minio` command cannot be located)
connectionprocessrC   )r   r   r   copyupdater   killwait
subprocessPopenOSErrorr6   r7   )
rT   rL   rM   rR   rS   addressrW   rC   argsprocr#   r#   r$   	s3_server   s0    

 rd   c               
   c   s   t  } tj }tjdddt| g}d }zz8dd l	}t
j||d}| d k	r`td| d W n< ttfk
r } ztd| d|  W 5 d }~X Y nX d	| f|d
V  W 5 |d k	r|  |  X d S )Nz-m	testbenchz--portr   rV   zCommand z# did not start server successfully!z failed to execute: rP   )rX   rY   )r   r   r   rZ   sys
executablestrr\   r]   re   r^   r_   pollr6   r7   ModuleNotFoundErrorr`   )rM   rW   rb   rc   re   er#   r#   r$   
gcs_server   s"    
(rl   )!r   rA   r^   rf   tempfiler   r6   Z
hypothesishZconftestr   r   Zpyarrow.utilr   settingsZregister_profileZ	VerbosityverboseZload_profiler   r   r-   r.   r>   r@   ZfixturerC   rI   rJ   rO   rT   rd   rl   r#   r#   r#   r$   <module>   sB   













