§
    öyIfk  ã                   óæ   — 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 dlmZ d d	lZerd d
lmZ dZde	dd	fd„Zej        dedd	fd„¦   «         Zdedd	fd„Z G d„ d¦  «        Zd	S )é    )ÚList)ÚOptional)ÚTYPE_CHECKING)Únodes)ÚConfig)ÚParser)ÚSession)Ú
TestReportN)ÚCachezcache/stepwiseÚparserÚreturnc                 óœ   — |                       d¦  «        }|                     dddddd¬¦  «         |                     d	d
dddd¬¦  «         d S )NÚgeneralz--swz
--stepwiseÚ
store_trueFÚstepwisezBExit on test failure and continue from last failing test next time)ÚactionÚdefaultÚdestÚhelpz	--sw-skipz--stepwise-skipÚstepwise_skipz_Ignore the first failing test but stop on the next failing test. Implicitly enables --stepwise.)ÚgetgroupÚ	addoption)r   Úgroups     úD/var/www/piapp/venv/lib/python3.11/site-packages/_pytest/stepwise.pyÚpytest_addoptionr      s{   € Ø�OŠO˜IÑ&Ô&€EØ	‡O‚OØØØØØØQð ñ ô ð ð 
‡O‚OØØØØØð)ð ñ ô ð ð ð ó    Úconfigc                 ó´   — | j         j        rd| j         _        |                      d¦  «        r*| j                             t          | ¦  «        d¦  «         d S d S )NTr   Ústepwiseplugin)Úoptionr   r   Ú	getoptionÚpluginmanagerÚregisterÚStepwisePlugin)r   s    r   Úpytest_configurer%   (   sd   € à„}Ô"ð &à!%ˆŒÔØ×Ò˜
Ñ#Ô#ð PØÔ×%Ò%¥n°VÑ&<Ô&<Ð>NÑOÔOÐOÐOÐOðPð Pr   Úsessionc                 óÒ   — | j                              d¦  «        sL| j         j        €J ‚t          | j         d¦  «        rd S | j         j                             t
          g ¦  «         d S d S )Nr   Úworkerinput)r   r!   ÚcacheÚhasattrÚsetÚSTEPWISE_CACHE_DIR©r&   s    r   Úpytest_sessionfinishr.   1   sr   € ØŒ>×#Ò# JÑ/Ô/ð 9ØŒ~Ô#Ð/Ð/Ð/Ý�7”> =Ñ1Ô1ð 	ð ˆFàŒÔ× Ò Õ!3°RÑ8Ô8Ð8Ð8Ð8ð9ð 9r   c                   óˆ   — e Zd Zdeddfd„Zdeddfd„Zdedeej	                 ddfd„Z
d	eddfd
„Zdee         fd„Zdd„ZdS )r$   r   r   Nc                 óØ   — || _         d | _        d| _        |j        €J ‚|j        | _        | j                             t
          d ¦  «        | _        |                     d¦  «        | _        d S )NÚ r   )	r   r&   Úreport_statusr)   Úgetr,   Ú
lastfailedr!   Úskip)Úselfr   s     r   Ú__init__zStepwisePlugin.__init__=   s`   € ØˆŒØ*.ˆŒØˆÔØŒ|Ð'Ð'Ð'Ø"œLˆŒ
Ø)-¬¯ªÕ8JÈDÑ)QÔ)QˆŒØ ×*Ò*¨?Ñ;Ô;ˆŒ	ˆ	ˆ	r   r&   c                 ó   — || _         d S )Nr-   )r6   r&   s     r   Úpytest_sessionstartz"StepwisePlugin.pytest_sessionstartF   s   € ØˆŒˆˆr   Úitemsc                 óü   — | j         s	d| _        d S d }t          |¦  «        D ]\  }}|j        | j         k    r|} nŒ|€	d| _        d S d|› d�| _        |d |…         }|d |…= |j                             |¬¦  «         d S )Nz)no previously failed tests, not skipping.z/previously failed test not found, not skipping.z	skipping z already passed items.)r:   )r4   r2   Ú	enumerateÚnodeidÚhookÚpytest_deselected)r6   r   r:   Úfailed_indexÚindexÚitemÚ
deselecteds          r   Úpytest_collection_modifyitemsz,StepwisePlugin.pytest_collection_modifyitemsI   s½   € ð Œð 	Ø!LˆDÔØˆFð ˆÝ$ UÑ+Ô+ð 	ð 	‰KˆE�4ØŒ{˜dœoÒ-Ð-Ø$�Ø�ð .ð ÐØ!RˆDÔÐÐà!Q¨\Ð!QÐ!QÐ!QˆDÔØ˜} ˜}Ô-ˆJØ�m�|�mÐ$ØŒK×)Ò)°
Ð)Ñ;Ô;Ð;Ð;Ð;r   Úreportc                 óô   — |j         rJ| j        r |j        | j        k    rd | _        d| _        d S |j        | _        | j        €J ‚d| j        _        d S |j        dk    r|j        | j        k    rd | _        d S d S d S )NFz0Test failed, continuing from this test next run.Úcall)Úfailedr5   r=   r4   r&   Ú
shouldstopÚwhen)r6   rE   s     r   Úpytest_runtest_logreportz'StepwisePlugin.pytest_runtest_logreporta   sœ   € ØŒ=ð 	+ØŒyð ð ”= D¤OÒ3Ð3Ø&*�D”Oà!�”	�	�	ð #)¤-�”Ø”|Ð/Ð/Ð/àFð ”Ô'Ð'Ð'ð Œ{˜fÒ$Ð$à”= D¤OÒ3Ð3Ø&*�D”O�O�Oð %Ð$à3Ð3r   c                 ód   — | j                              d¦  «        dk    r| j        r
d| j        › �S d S )NÚverboser   z
stepwise: )r   r!   r2   ©r6   s    r   Úpytest_report_collectionfinishz-StepwisePlugin.pytest_report_collectionfinishy   s;   € ØŒ;× Ò  Ñ+Ô+¨qÒ0Ð0°TÔ5GÐ0Ø4 Ô 2Ð4Ð4Ð4Øˆtr   c                 ó~   — t          | j        d¦  «        rd S | j                             t          | j        ¦  «         d S )Nr(   )r*   r   r)   r+   r,   r4   rN   s    r   r.   z#StepwisePlugin.pytest_sessionfinish~   s<   € Ý�4”; Ñ.Ô.ð 	ð ˆFØŒ
�ŠÕ)¨4¬?Ñ;Ô;Ð;Ð;Ð;r   )r   N)Ú__name__Ú
__module__Ú__qualname__r   r7   r	   r9   r   r   ÚItemrD   r
   rK   r   ÚstrrO   r.   © r   r   r$   r$   <   sà   € € € € € ð<˜vð <¨$ð <ð <ð <ð <ð¨7ð °tð ð ð ð ð<Øð<Ø%)¨%¬*Ô%5ð<à	ð<ð <ð <ð <ð0+¨zð +¸dð +ð +ð +ð +ð0°¸´ð ð ð ð ð
<ð <ð <ð <ð <ð <r   r$   )Útypingr   r   r   Ú_pytestr   Ú_pytest.configr   Ú_pytest.config.argparsingr   Ú_pytest.mainr	   Ú_pytest.reportsr
   ÚpytestÚ_pytest.cacheproviderr   r,   r   Úhookimplr%   r.   r$   rV   r   r   ú<module>r`      sv  ðØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø €€€ð ð ,Ø+Ð+Ð+Ð+Ð+Ð+à%Ð ð˜Vð ¨ð ð ð ð ð* „ðP˜Vð P¨ð Pð Pð Pñ „ðPð9 'ð 9¨dð 9ð 9ð 9ð 9ðG<ð G<ð G<ð G<ð G<ñ G<ô G<ð G<ð G<ð G<r   