
    s@;j)                    t   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl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Zej                            e          Zej                            ej                            ed                    Zeej        d <   d dlZd dlZd dlmZmZ d d	l m!Z!m"Z"m#Z#m$Z$m%Z% d
Z&dEdZ'dFdZ(dGdZ) e	j*         ej+                    dk    d           G d de%                      Z, G d de%          Z-g dg dg ddggZ.dgg g g gZ/g d d!gg g gZ0e,ge-gg g gZ1dHd&Z2dId*Z3dJd-Z4e5d.k    ru	  ej        ej6        d
d         d/          \  Z7Z8n"# ej9        $ rZ: e4e:           Y dZ:[:ndZ:[:ww xY we7D ]\  Z;Z<e;d0k    re&d
z  Z& e=e8          d
k    r e4d1           	  e>e8d                    Z?n# e@$ r d2Z?Y neA$ r  e4d3           Y nw xY we?d
k     se?d4k    r e4d5            e'              e3e?          \  ZBZCe&r eDed6          r eE ed7                      eEd8e? d9eBF                                 d:           e&d
k    r8eBF                                d;k     r  eEd<eBF                                z              ee&=          G                    eB          ZHeCreHjI        J                    d>           eCD ]Q\  ZKZ9d?                     ejL         eMe9          e9                    ZNeHjI        O                    eK d@eN            ReHjI        J                    dA e=eC           dB           eHP                                s eEdCdD            e"              ejQ                      e'             eHP                                s ejR        d
           dS dS dS )K    )annotationsN)Callable)dedent)
ModuleType)NoReturnz..)
TestLoader
TestRunner)CapturingFunctionTestCase
CheckCleanRegisterPythonServerShellTestCaseTestCase   returnNonec                 $   t           j                            t          j                  rCt
          dk    rt          dt          j                   t          j        t          j                   t          j	        j
                                         d S )Nr   zDeleting files from)ospathisdirwin32com__gen_path__	verbosityprintshutilrmtreeclientgencache__init__     cC:\Users\Administrator\AppData\Local\Temp\2\pip-target-b0z114gj\lib\python\win32com/test/testall.pyCleanGeneratedr"   )   sh    	w}}X*++ -q==((*?@@@h+,,,O%%'''''r    datastrc                    	 |                      d          }t          j        d| |dz   d                    sn|dk     rdS | d |         } I| S )NT
z\[\d+ refs\]r   r    )rfindrematch)r#   last_line_poss     r!   RemoveRefCountOutputr,   2   si    $

4((xma.?.A.A)BCC 	12N]N#$ Kr    cmdtestcaser   c                   t          j        |           }|                                                                }|                                }|r+t          |           |                    d|  d| d           t          |          S )NzExecuting 'z
' failed ())r   popenreadstripcloser   failr,   )r-   r.   fr#   rcs        r!   ExecuteSilentlyIfOKr8   ?   sz    
A6688>>D	
B	 :d8C882888999%%%r    ARM64zzPyCOMTest cannot currently be run on ARM64 due to lacking win32com.universal implementation in com/win32com/src/univgw.cppc                      e Zd ZdZddZdS )	PyCOMTestTr   r   c                    t          t          j                            t          dd          d           t          j                            t
          d          }t          j         d| d}t          ||           }d S )Nserversztest_pycomtest.pyzPython.Test.PyCOMTestztestPyComTest.py "z	" -q 2>&1)	r   r   r   joinwin32com_src_dirthis_foldersys
executabler8   )selffnamer-   r#   s       r!   testitzPyCOMTest.testitS   ss     	GLL)96IJJ#	
 	
 	
 [*<==335333"3--r    Nr   r   )__name__
__module____qualname__no_leak_testsrF   r   r    r!   r;   r;   J   s/         M. . . . . .r    r;   c                      e Zd ZddZdS )	PippoTestr   r   c                    ddl m} t          |j        d           t          j        }t          j                            t          d          }| d| d}t          ||            d S )Nr   )pippo_serverzPython.Test.PippoztestPippo.pyr>   z" 2>&1)win32com.testrO   r   __file__rB   rC   r   r   r?   rA   r8   )rD   rO   pythonrE   r-   s        r!   rF   zPippoTest.testitd   sp    ......\24GHHH[.99((5(((C&&&&&r    NrG   )rH   rI   rJ   rF   r   r    r!   rM   rM   c   s(        	' 	' 	' 	' 	' 	'r    rM   )testIteratorstestvbscript_regexptestStoragetestStreamstestWMIpolicySemantics	testShelltestROTtestxslttestCollectionszerrorSemantics.test
testArraystestClipboardtestConversionErrors)testAXScripttestDictionarytestServerstestvbtestMarshal)ztestMSOffice.TestAllztestMSOfficeEvents.testztestAccess.testztestExplorer.TestAllztestExchange.testztestmakepy.TestAllz!win32com.directsound.test.ds_test)z/cscript.exe /nologo //E:vbscript testInterp.vbszVBScript test worked OK)z3cscript.exe /nologo //E:vbscript testDictionary.vbsz2VBScript has successfully tested Python.Dictionary	test_nameimport_failureslist[tuple[str, BaseException]]Btuple[None, None] | tuple[ModuleType, Callable[[], object] | None]c                L   |                      d          dk    r|                     d          \  }}n| }d }d|z   }	 t          |           t          j        |         }n/# t
          $ r"}|                    ||f           Y d }~dS d }~ww xY w|d nt          ||          }||fS )N.r   zwin32com.test.)NN)findsplit
__import__rB   modules	Exceptionappendgetattr)re   rf   mod_name	func_namefq_mod_namemoderrorfuncs           r!   get_test_mod_and_funcrx      s     ~~cQ'ooc22))	"X-K;k+&   %0111zzzzz $44'#y*A*AD9s   !A 
B)BB
test_levelint:tuple[unittest.TestSuite, list[tuple[str, BaseException]]]c                   t          j                    }g }t                      }t          |           D ];}t          |         D ]}t          ||          \  }}|t          d| d          |t          ||          }n:t          |d          r|	                                }n|
                    |          }|                                dk    sJ d|            |                    |           t          |         D ](\  }	}
|                    t          |	|
                     )t          |         D ]4}|                    t           j                            |                     5=t          |           D ]}t$          |         D ]}	 t'          |           n.# t(          $ r!}|                    ||f           Y d }~9d }~ww xY wt,          j        |         }t          |d          r|	                                }n|
                    |          }|                                dk    sJ d|            |                    |           Ȍ||fS )Nzno such module '')descriptionsuiter   zNo tests loaded from )unittest	TestSuiter   rangeunittest_modulesrx   ModuleNotFoundErrorr
   hasattrr   loadTestsFromModulecountTestCasesaddTestoutput_checked_programsr   custom_test_casesdefaultTestLoaderloadTestsFromTestCaseunittest_other_modulesrm   ro   rp   rB   rn   )ry   r   rf   loaderirr   ru   rw   testr-   output
test_classrv   s                r!   make_test_suiter      s      E79O\\F: X X(+ 	  	 H-hHHIC{)*HX*H*H*HIII08LLL3(( ;99;;DD!55c::D&&((1,,,.Mc.M.M,,,MM$215 	6 	6KCMM-V445555+A. 	X 	XJMM(4JJ:VVWWWW	X :    .q1 	  	 H8$$$$   &&%'8999 +h'CsG$$ 7yy{{11#66&&((1,,,.Mc.M.M,,,MM$	  /!!s   F!!
G+GGwhyr   c                R    t          |  d           t          j        d           d S )Nz

win32com test suite
usage: testall [-v] test_level
  where test_level is an integer 1-4.  Level 1 tests are quick,
  level 2 tests invoke Word, IE etc, level 3 take ages!
  level 4 we try and run `makepy` over every typelib installedr   )r   rB   exit)r   s    r!   usager     s?    	B B B C C C HQKKKKKr    __main__vz-vzPOnly a single test level argument is supported. Test names are not supported yet   z Test names are not supported yet   zOnly levels 1-4 are supportedgettotalrefcountz                This is a debug build - memory leak tests will also be run.
                These tests may take *many* minutes to run - be patient!
                (running from python.exe will avoid these leak testszExecuting level z	 tests - z test cases will be runF   |)r   z8*** The following test modules could not be imported ***r&   z: z*** z test(s) could not be run ***z********************z- unittest tests FAILEDrG   )r#   r$   r   r$   )r-   r$   r.   r   r   r$   )re   r$   rf   rg   r   rh   )ry   rz   r   r{   )r   r$   r   r   )S
__future__r   getoptr   platformr)   r   rB   	tracebackr   collections.abcr   textwrapr   typesr   typingr   r   r   dirnamerQ   rA   abspathr?   r@   __path__	pythoncomwin32com.client.gencachepywin32_testutilr   r	   win32com.test.utilr
   r   r   r   r   r   r"   r,   r8   skipIfmachiner;   rM   r   r   r   r   rx   r   r   rH   argvoptsargsrv   r   optvallenrz   ry   
IndexError
ValueErrorr   rf   r   r   r   run
testResultstreamwritelnrr   format_exception_onlytypedescwritewasSuccessfulCoUninitializer   r   r    r!   <module>r      s   " " " " " "  				  				  



      $ $ $ $ $ $                   gooh''7??27<<T#B#BCC  ( !          3 3 3 3 3 3 3 3              	( ( ( (
 
 
 
& & & & H'!' . . . . . . . .&
' 
' 
' 
' 
' 
' 
' 
'"  ( ONN   A! N ))	   	W	
  ( 	
 	      (*" *" *" *"Z	 	 	 	 z"V]38ABB<55
dd<   c







  S$;;NI
s4yy1}}1	
 	
 	
2Sa\\

   


 2 2 20111112A~~a-...N,_Z88E? 073*++ 	E H I I   	czccE4H4H4J4Jccc	
 	
 	
 >>e2244r99E#,,...///i00044U;;J 	
!!F	
 	
 	
  / 	; 	;OHe99<Y<TT%[[%PPQQD##x$9$94$9$9::::!!F33''FFF	
 	
 	

 ##%% 3h1222JLLLIN##%% w t s0   !E$ $
F.E>>F4G G!G! G!