
    !h                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr   " S	 S
\5      r " S S\	5      rg)    N)defaultdict)TextTestResult)TextTestRunner)ScrapyCommand)ContractsManager)build_component_list)load_objectset_environc                   *    \ rS rSrS\S\SS4S jrSrg)r      startstopreturnNc           	      F   U R                   R                  nU R                   R                  nU R                  nUS:w  a  SOSnU" U R                  5        U" SU SU SX!-
  S S35        U" 5         / nU R                  5       (       dg  U" S5        [        [        U R                  U R                  45      u  pU(       a  UR                  S	U 35        U	(       a  UR                  S
U	 35        OU" S5        U(       a  U" SSR                  U5       S35        g U" S5        g )N   s zRan z	 contractz in z.3fFAILEDz	failures=zerrors=OKz (z, )
)streamwritewritelntestsRun
separator2wasSuccessfulmaplenfailureserrorsappendjoin)
selfr   r   r   r   runpluralinfosfailederroreds
             \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/commands/check.pyprintSummaryTextTestResult.printSummary   s    !!++%%mmqb $se9VHDc0B!DE	!!##(O!#t{{'CDOFy12wwi01$Kb5)*!,-$K     )__name__
__module____qualname____firstlineno__floatr+   __static_attributes__r.   r-   r*   r   r      s    % u  r-   r   c                      ^  \ rS rSrSrSS0rS\4S jrS\4S jrS\	R                  SS	4U 4S
 jjrS\\   S\	R                  SS	4S jrSrU =r$ )Command*   TLOG_ENABLEDFr   c                     g)Nz[options] <spider>r.   r$   s    r*   syntaxCommand.syntax.   s    #r-   c                     g)NzCheck spider contractsr.   r:   s    r*   
short_descCommand.short_desc1   s    'r-   parserNc           	      r   > [         TU ]  U5        UR                  SSSSSS9  UR                  SSS	S
SSS9  g )Nz-lz--listlist
store_truez*only list contracts, without checking them)destactionhelpz-vz	--verboseverboseFz$print contract tests for all spiders)rD   defaultrE   rF   )superadd_optionsadd_argument)r$   r@   	__class__s     r*   rJ   Command.add_options4   sY    F#= 	 	
 	7 	 	
r-   argsoptsc                   ^^ [        U R                  R                  S5      5      n[        S U 5       5      m[	        UR
                  (       a  SOSS9n[        UR                  UR                  UR                  5      m[        [        5      nU R                  (       d   eU R                  R                  nUU4S jn[        SS9   U=(       d    UR                  5        H  nUR                  U5      n	Xyl        TR#                  U	5      n
UR                  (       a(  U
 H   nXYR$                     R'                  U5        M"     Md  U
(       d  Mm  U R                  R)                  U	5        M     UR                  (       ah  [+        UR-                  5       5       HJ  u  pU(       d  UR
                  (       d  M  [/        U5        [+        U5       H  n[/        S	U 35        M     ML     O[0        R0                  " 5       nU R                  R!                  5         [0        R0                  " 5       nTR3                  5         TR5                  X5        [7        TR9                  5       (       + 5      U l        S S S 5        g ! , (       d  f       g = f)
NSPIDER_CONTRACTSc              3   8   #    U  H  n[        U5      v   M     g 7fN)r	   ).0cs     r*   	<genexpr>Command.run.<locals>.<genexpr>I   s     !D)Q+a..)s      r   )	verbosityc                J   >#    TR                  U T5       H  nU7v   M
     g 7frS   )from_spider)r$   requestconmanresults     r*   r   Command.run.<locals>.startS   s"     !--dF; <s    #true)SCRAPY_CHECKz  * )r   settingsgetwithbaser   r   rG   r   r   descriptionsrY   r   rB   crawler_processspider_loaderr
   loadr   tested_methods_from_spiderclsnamer"   crawlsorteditemsprinttimeprintErrorsr+   intr   exitcode)r$   rN   rO   	contractsrunnercontract_reqsrf   r   
spidername	spiderclstested_methodsmethodspidermethods
start_timer   r]   r^   s                   @@r*   r%   Command.runF   s   ()B)BCU)VW	!!D)!DDt||!Cv/B/BFDTDTU $D)####,,::	 f-":m&8&8&::
)..z:	"'!'!E!Ei!P99"0%nn5<<VD #1#^((..y9 ; yy'-m.A.A.C'DOF"4<< &M"(/VHo. #2	 (E "YY[
$$**,yy{""$##J5 #(<(<(>$> ?7 .--s   BI8D I88
J)rq   )r/   r0   r1   r2   requires_projectdefault_settingsstrr;   r>   argparseArgumentParserrJ   rB   	Namespacer%   r4   __classcell__)rL   s   @r*   r6   r6   *   ss    %u-$ $(C (
("9"9 
d 
$,@S	 ,@);); ,@ ,@ ,@r-   r6   )r   rn   collectionsr   unittestr   _TextTestResultr   scrapy.commandsr   scrapy.contractsr   scrapy.utils.confr   scrapy.utils.miscr	   r
   r6   r.   r-   r*   <module>r      s<      # 6 # ) - 2 6_ :H@m H@r-   