
    	hm                     4   d Z ddlZ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  eee                              ZdeddfdZ ej        d          de	ddfd            Zde	ddfdZdeeef         defdZdeddfdZdS )zASubmit failure or test session information to a pastebin service.    N)StringIO)IO)Union)Config)create_terminal_writer)Parser)StashKey)TerminalReporterparserreturnc           	      l    |                      d          }|                    ddddd ddgd	           d S )
Nzterminal reportingz
--pastebinmodestorepastebinfailedallz3Send failed|all info to bpaste.net pastebin service)metavaractiondestdefaultchoiceshelp)getgroup
_addoption)r   groups     ]/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/_pytest/pastebin.pypytest_addoptionr      sU    OO011E	5!B          T)trylastconfigc                       j         j        dk    r] j                            d          }|Ct	          j        d           j        t          <   |j        j	         fd}||j        _	        d S d S d S )Nr   terminalreporterzw+bc                      | fi | t          | t                    r|                     d          } j        t                                       |            d S )Nutf-8)
isinstancestrencodestashpastebinfile_keywrite)skwargsr    oldwrites     r   	tee_writez#pytest_configure.<locals>.tee_write+   s`    %%f%%%a%% *))A-.44Q77777r   )
optionr   pluginmanager	getplugintempfileTemporaryFiler(   r)   _twr*   )r    trr.   r-   s   `  @r   pytest_configurer6      s    }&&!++,>?? >-5-CE-J-JFL)*v|H8 8 8 8 8 8 %BFLLL! '&
 >r   c                    t           | j        v r| j        t                    }|                    d           |                                }|                                 | j        t           = | j                            d          }|j        j        d= |	                    dd           t          |          }|                    d|z             d S d S )Nr   r"   r*   =$Sending information to Paste Servicezpastebin session-log: %s
)r)   r(   seekreadcloser0   r1   r4   __dict__	write_sepcreate_new_paste
write_line)r    pastebinfile
sessionlogr5   pastebinurls        r   pytest_unconfigurerD   4   s    6<''|$45!!&&((
L)*!++,>??FOG$
S@AAA&z22
2[@AAAAA ('r   contentsc                 ~   ddl }ddlm} ddlm} | ddd}d}	  || ||                              d	          
                                                              d          }n# t          $ r}d|z  cY d}~S d}~ww xY w|	                    d|          }|r| d|
                    d           S d|z   dz   S )zCreate a new paste using the bpaste.net service.

    :contents: Paste contents string.
    :returns: URL to the pasted contents, or an error message.
    r   N)urlopen)	urlencodetext1week)codelexerexpiryzhttps://bpa.stascii)datar$   zbad response: %szhref="/raw/(\w+)"z/show/   zbad response: invalid format ('z'))reurllib.requestrG   urllib.parserH   r'   r;   decodeOSErrorsearchr   )	rE   rQ   rG   rH   paramsurlresponseexc_infoms	            r   r?   r?   E   s    III&&&&&&&&&&&&7CCF
C-GCii//66w??@@@EEGGNNwWW 	  - - -!H,,,,,,,-
		&11A C))QWWQZZ)))08;dBBs   AA) )
B3A=7B=Br"   c                 (   | j         j        j        dk    rd S d| j        v r|                     dd           | j        d         D ]}	 |j        j        j        d         j        }n%# t          $ r | 
                    |          }Y nw xY wt                      }t          | j         |          }|                    |           |                                }t          |          sJ t!          |          }|                     | d|            d S d S )Nr   r8   r9   z --> )r    r/   r   statsr>   longreprreprtracebackreprentriesreprfilelocAttributeError_getfailureheadliner   r   
toterminalgetvaluelenr?   r@   )r"   repmsgfiletwr+   rC   s          r   pytest_terminal_summaryrl   ^   s=   %.(::#)))""3(NOOO#)(3 	D 	DC@l0<R@L! @ @ @&::3??@::D'(8(?FFBNN2Aq66MM6*1--K''3(B(B[(B(BCCCC *)	D 	Ds   A$$BB)__doc__r2   ior   typingr   r   pytest_pytest.configr   r   _pytest.config.argparsingr   _pytest.stashr	   _pytest.terminalr
   bytesr)   r   hookimplr6   rD   r&   r?   rl    r   r   <module>rx      s   G G                     ! ! ! ! ! ! 1 1 1 1 1 1 , , , , , , " " " " " " - - - - - - '8BuI&(( 
V 
 
 
 
 
 %V % % % % %(Bv B$ B B B B"CuS%Z0 CS C C C C2D.> D4 D D D D D Dr   