o
    Ú­j½  ã                   @   s  d dl mZ d dl m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 dl
mZ d d	lmZ d d
lmZ d dlmZ deddfdd„Zejdd�dee deded fdd„ƒZdee ddfdd„Zdee deddfdd„Zejdd�dedeeee	f  fdd„ƒZdS ) é    )Ú	Generator)ÚOptional)ÚUnionN)Úsaferepr)ÚConfig)ÚExitCode)ÚParser)Ú
FixtureDef)Ú
SubRequest)ÚScopeÚparserÚreturnc                 C   s2   |   d¡}|jddddd� |jdddd	d� d S )
NÚdebugconfigz--setuponlyz--setup-onlyÚ
store_truez)Only setup fixtures, do not execute tests)ÚactionÚhelpz--setupshowz--setup-showz,Show setup of fixtures while executing tests)ÚgetgroupÚ	addoption)r   Úgroup© r   úN/var/www/html/CropPilot/venv/lib/python3.10/site-packages/_pytest/setuponly.pyÚpytest_addoption   s   
ü
ür   T)ÚhookwrapperÚ
fixturedefÚrequest)NNNc                 c   sf   � d V  |j jjr1t|dƒr*| jr$t| jƒr|  |j¡}n
| j|j }n|j}|| _t	| dƒ d S d S )NÚparamÚSETUP)
ÚconfigÚoptionÚ	setupshowÚhasattrÚidsÚcallabler   Úparam_indexÚcached_paramÚ_show_fixture_action)r   r   r   r   r   r   Úpytest_fixture_setup   s   €


ôr&   c                 C   sB   | j d ur| jj}|jjrt| dƒ t| dƒr| `d S d S d S d S )NÚTEARDOWNr$   )Úcached_resultÚ_fixturemanagerr   r   r   r%   r    r$   )r   r   r   r   r   Úpytest_fixture_post_finalizer3   s   


ûr*   Úmsgc                 C   sò   | j j}|j d¡}|r| ¡  | ¡ }| ¡  ttt	ƒƒ 
| j¡}| d| ¡ | dj| d¡| jd  ¡ | jd�¡ |dkrXtdd	„ | jD ƒƒ}|rX| d
 d |¡¡¡ t| dƒrk| dt| jdd�› d�¡ | ¡  |rw| ¡  d S d S )NÚcapturemanagerz  z{step} {scope} {fixture}é   r   )ÚstepÚscopeÚfixturer   c                 s   s   � | ]	}|d kr|V  qdS )r   Nr   )Ú.0Úargr   r   r   Ú	<genexpr>P   s   € z'_show_fixture_action.<locals>.<genexpr>z (fixtures used: {})z, r$   ú[é*   )Úmaxsizeú])r)   r   ÚpluginmanagerÚ	getpluginÚsuspend_global_captureÚget_terminal_writerÚlineÚlistÚreversedr   ÚindexÚ_scopeÚwriteÚformatÚljustr/   ÚupperÚargnameÚsortedÚargnamesÚjoinr    r   r$   ÚflushÚresume_global_capture)r   r+   r   ÚcapmanÚtwÚscope_indentÚdepsr   r   r   r%   <   s2   ýÿ
ÿr%   )Útryfirstr   c                 C   s   | j jrd| j _d S )NT)r   Ú	setuponlyr   )r   r   r   r   Úpytest_cmdline_main]   s   rQ   )Útypingr   r   r   ÚpytestÚ_pytest._io.safereprr   Ú_pytest.configr   r   Ú_pytest.config.argparsingr   Ú_pytest.fixturesr	   r
   Ú_pytest.scoper   r   ÚhookimplÚobjectr&   r*   Ústrr%   ÚintrQ   r   r   r   r   Ú<module>   s0    
ÿÿþ	
!$