
    3 d                     f    d dl Z d dlZd dlmZmZ  G d d          Z G d dej                  ZdS )    N)deferprotocolc                   R    e Zd ZdZej        ddgZ ej                    Z	ddZ
d ZdS )ProcessTestNz-mzscrapy.cmdlineTc                 N   ddl m} t          j                                        }|||d<   | j        | j        gz   t          |          z   }t                      }|j	        
                    | j        ||           |                    ||d         ||| j                   |j	        S )Nr   )reactorSCRAPY_SETTINGS_MODULE)envpath)twisted.internetr   osenvironcopyprefixcommandlistTestProcessProtocoldeferredaddBoth_process_finishedspawnProcesscwd)selfargs
check_codesettingsr   r
   cmdpps           5lib/python3.11/site-packages/scrapy/utils/testproc.pyexecutezProcessTest.execute   s    ,,,,,,joo 	5,4C()kT\N*T$ZZ7 ""
D2CDDDRQ#DHEEE{    c                     |j         r=|r;d| d|j          }|d|j         z  }|dz  }|d|j         z  }t          |          |j         |j        |j        fS )Nzprocess z exit with code z
>>> stdout <<<

z
>>> stderr <<<
)exitcodeouterrRuntimeError)r   r   r   r   msgs        r   r   zProcessTest._process_finished   s~    ; 	$: 	$?S??"+??C0000C4KC0000Cs###{BFBF**r!   )TN)__name__
__module____qualname__r   sys
executabler   r   getcwdr   r    r    r!   r   r   r      sX        Gnd$45F
")++C
 
 
 
+ + + + +r!   r   c                   &    e Zd Zd Zd Zd Zd ZdS )r   c                 `    t          j                    | _        d| _        d| _        d | _        d S )Nr!   )r   Deferredr   r%   r&   r$   )r   s    r   __init__zTestProcessProtocol.__init__$   s*    ((r!   c                 &    | xj         |z  c_         d S N)r%   r   datas     r   outReceivedzTestProcessProtocol.outReceived*       Dr!   c                 &    | xj         |z  c_         d S r5   )r&   r6   s     r   errReceivedzTestProcessProtocol.errReceived-   r9   r!   c                 \    |j         j        | _        | j                            |            d S r5   )valueexitCoder$   r   callback)r   statuss     r   processEndedz TestProcessProtocol.processEnded0   s*    -t$$$$$r!   N)r)   r*   r+   r3   r8   r;   rA   r/   r!   r   r   r   #   sP              % % % % %r!   r   )r   r,   r   r   r   r   ProcessProtocolr   r/   r!   r   <module>rC      s    				 



 , , , , , , , ,+ + + + + + + +8% % % % %(2 % % % % %r!   