i~$ddlZde_ddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z mZddlmZddlmZmZmZmZmZmZmZddlmZejjejeje dddd  ej!d dd d d n/#ej"$r"Z#dZ$e%de$de&e$e#dZ#[#wwxYwej'd dd d dZ(Gddej)Z*Gddej)Z+Gddej)Z,Gddej)Z-dZ.dZ/dZ0dZ1dZ2dZ3Gdd Z4d!Z5d"Z6d#Z7d$Z8d%Z9d&Z:d'Z;d8d(Zd+Z?d,Z@ejAfd-ZBd.ZCd/ZDd9d1ZEGd2d3ejjjFZGeHd4krCd5ZIddlJZJeJjKeId6d7ejLvrd Z(ejjMdSdS):N) CloseHandleGetCurrentProcessId OpenProcess) universal)VARIANTCastToDispatchBaseClassRecord constantsgencacheregister_record_class)GetProcessMemoryInfoz..serversztest_pycomtest.pyPython.Test.PyCOMTest&{6BCDCB60-5605-11D0-AE5F-CADD4C000000}F) bForDemandz*** PyCOMTest is not installed *** PyCOMTest is a Python test specific COM client and server. It is likely this server is not installed on this machine To install the server, you must get the win32com sources and build it using MS Visual C++z6The PyCOMTest module can not be located or generated.  c&eZdZdZdZdZdZdZdZdS) TestStruct1rrrz&{7A4CE6A7-7959-4E85-A3C0-B41442FF0F67}N __name__ __module__ __qualname__ __slots__TLBIDMJVERMNVERLCIDGUIDrIC:\PYTHON\_runtimes\venv\Lib\site-packages\win32com/test/testPyComTest.pyrr:,I 4E E E D 3DDDr"rc&eZdZdZdZdZdZdZdZdS) TestStruct2rrrr&{78F0EA07-B7CF-42EA-A251-A4C6269F76AF}Nrrr"r#r&r&Cr$r"r&c&eZdZdZdZdZdZdZdZdS)ArrayOfStructsTestStructrrrrr'Nrrr"r#r)r)Nr$r"r)c&eZdZdZdZdZdZdZdZdS)NotInTypeLibraryTestStructrrrrz&{79BB6AC3-12DE-4AC5-88AC-225C29A58043}Nrrr"r#r+r+Wr$r"r+cL||}||ksJ|d|d|dS)Nz failed - expected z, got r)funcarggots r# check_get_setr0`s< $s))C #:::$GG3GGGG:::::r"c t ||}t|d|d|d|#|$r }Yd}~dSd}~wwxYw)Nz with arg  didn't raise z - returned )AssertionError)excr-r.r/es r#check_get_set_raisesr6esw d3ii L Ls L LC L LS L L         s '77c`tr&|D]}t|dtdSdS)N )end)verboseprint)argsr.s r#progressr=psF  C #3      r"c t|d}n#t|}YnxYwtd|d|z}||}||ksJ|d|d|dS)NrzTesting z function z failed - result not z but )strsplitr=)fnr<resultfnNameprefrcs r#TestApplyResultrFwsR#R Z    D TB <<9i00><<<<=== w   RIRRhRRRR     s-ct}d}d}t||zd|}t|}t||dS)NiFWorkingSetSize)rrrr)pidPROCESS_QUERY_INFORMATIONPROCESS_VM_READhprocessmem_infos r#GetMemoryUsagerUsV   C &O4FsSSH#H--H $ %%r"c&eZdZdZdZdZdZdS)RandomEventHandlerci|_dSN)firedsselfs r#_InitzRandomEventHandler._Inits  r"ch |j|xxdz cc<dS#t$rd|j|<YdSwxYw)Nrr)rZKeyError)r\nos r#OnFirezRandomEventHandler.OnFiresO KOOOq OOOOO   DKOOOO s 11ctj}||ur1||jvsJ|dz|ks Jd|dz|ks Jd||ust|ts Jd|dz|dzfS)Nrz!expecting 'out1' param to be ID+1z!expecting 'out2' param to be ID+2zmiddle param not a bool) pythoncomMissingrZ isinstancebool)r\r`a_boolout1out2res r#OnFireWithNamedParamsz(RandomEventHandler.OnFireWithNamedParamss# W  $$$$6T>>>#F>>>6T>>>#F>>>  Jvt$<$<  >W  <ax!!r"c|jstd|jD]\}}td||fzdS)NzERROR: Nothing was received!zID %d fired %d times)rZr;itemsr=)r\firedIdr`s r# _DumpFiredszRandomEventHandler._DumpFiredssa{ 2 0 1 1 1;,,.. = =KGR +wm; < < < < = =r"N)rrrr]rarkrorr"r#rWrWsP   " " "=====r"rWctd|}t||td|}|dddkrt |ddz dks Jd|f|dd d d }|ddd krt |dd z dks Jd |f|d}|dks Jd|f|d dd }|dddkrt |dd z dks Jd|ftdt |j|td|j}t|d|}t| ||s Jd| |td|j}t|d|}| |j|ks Jdtdt |j dt |j dt |j |t |jdt |jdt |jdt |jdt |jdt |jd|ddks Jdt |jdt |jdt |jdt |jdt |jdt |jd|ddks Jdd }||dzd!fD]}t |j |td"|}|jd#krt)|jd$ksJ|dd%ksJtd&|dd'd(d)d|d*ksJd+|td,g}t3|j|ft7|gd-}t3|j|ft7|t3|jd.dt3|jt=d/fd0td1d |_|j|j cxkrd ksnJd2|jd3|j d4x|_|_ |j|j cxkrd4ksnJd2|jd3|j d5}||_!|j!|ksJd2|j!d6|d7t3|j"d8dt3|j"d9dt3|j"d:dt3|j"d;dt3|j"dd tGd?d@tGdAd tGdBdCtGdDdtGdEdFtdGtIj%} | &dH} | tOj(dIz} t3|j)| | f| |*dJtNj'+dKksJtdLdtX_-|j.dksJdM|j.dND]L} t_j0| |_.|j.t_j0| ksJ| dO|j.Mt_j0dP} t3|j1| f| d zt_j0dQ} t3|j2| | f| | ztdR|j3dksJdM|j3dSD]L} t_j0| |_3|j3t_j0| ksJ| dO|j3Mt_j0dP} t3|j4| f| d zt_j0dT} t3|j5| | f| | ztm||tdUto||dS)VNzGetting counterzChecking default args)defrrgQ @g{Gz?z)Did not get the optional values correctlyHirc皙?)rsrcrtz3Did not get the specified optional values correctlyr)rrz*Did not get the optional2 values correctlyr)rsrcz4Did not get the specified optional2 values correctlyz!Checking getting/passing IUnknownz"Checking getting/passing IDispatchdefault_interfacezGetSetDispatch failed: z0Checking getting/passing IDispatch of known typezGetSetDispatch failedzChecking misc argsfoolzunsigned -1 failedil zChecking structscHello from C++foofoozChecking var argsThereFromPython)rsr~rrrzVarArgs failed -zChecking arraysrrcrtrx)rsfoobarzChecking propertieszProperty value wrong - got /l^ez (expected ))Unusedr{)rrq)rT)rr)rF ULongTest1 ULongTest2 LongTest1i LongTest2 UCharTestCharTest StringTestu Hello Wo®ldzChecking dates and times) microsecond)secondsgF@z1951-03-25 07:23:49+00:00zChecking currencyzExpecting 0, got ) 1234.5678z1234.561234z got rz 9012.3456zChecking decimal type)r123456789.1234z-987654321.9876z0.1234z-0.1234z654.321z Checking win32com.client.VARIANT)8r=GetSimpleCounter TestCounter TestOptionalsabsTestOptionals2r0 GetSetUnknown __class__rHrfGetSetDispatchGetSetInterface GetSetVariant GetSetIntGetSetUnsignedInt GetSetLongGetSetUnsignedLong GetStruct int_valuer? str_value DoubleString SetVarArgsGetLastVarArgsrFSetVariantSafeArraylenCheckVariantSafeArraySetBinSafeArray memoryviewLongPropIntProp ULongPropTestrL win32timezonenowreplacedatetime timedelta EarliestDateMakeDate fromisoformatrd__future_currency__ CurrencyPropdecimalDecimalDoubleCurrency AddCurrencies DecimalProp DoubleDecimal AddDecimalsTestTrickyTypesWithVariants TestPyVariant)o is_generatedcounterrEexpected_classbiglrcheckrlatervalv1v2s r# TestCommonrs#    ""G&&& $%%%   B crc7m # #BrFTM(:(:d(B(B(B3 E(B(B B q!S ) )B crc7l " "s2b6C<'8'8D'@'@'@= C'@'@ @  !  B    JBO     #tQ ' 'B abb6Y  3r!us{#3#3t#;#;#;> >#;#; ;  0111!/1%%% 1222[N^-@.QQN a&&q))> : :9!"2"21"5"599 : ?@@@[N^-@.QQN  Q   )^ ; ; ;=T ; ; ; !"""!/1%%%!/5)))!/1%%%!+q!!!!+r"""!+q!!!!%q)))!%q)))!%z222  r " "j 0 0 02F 0 0 0!,"""!,###!,"""!&***!&***!& 333   # #z 1 1 13G 1 1 1 C #'7 "**aoq))))     A ;"  Q[!1!15E!E!E!E E >>% H , , , , !!!LLw!444    "    /!**,,..      AA)A4Q888 AA)A4Q888      A% ;(?(?'A1EEE "###AJ : ' ' ' 'a ' ' ' ' '>aj>>19>> ( ' ' AJ : ( ( ( (b ( ( ( ( (>aj>>19>> ) ( ( EAK ;%   FakFFeFFF  AFNA...AFNA...AF,a000AFM1---AF-q111 >>% H , , , ,z***z***k***j)))c"""R   /000 '(((    C ++!+ $ $C ($Q/// /EANS%L#666 ::( ) )X->-L-L#..     !!!$%I! >Q    FAN F F   /WW --~!5!5555#7V7VAN7V7V5555  % %BA$reR!V444  % %BAOb"XrBw777 $%%% =A   D1=DD   UU ,, } 4 44446T6T1=6T6T4444  % %BAObUBF333  # #BAMB8R"W555<000 /000!\"""""r"c\|r|d}nCttjtjzd}|||j}|dks Jd|r|d}nCttjtjzd}|||j}|dks Jdgd}|r|}n'ttjtj z|}t|j |ft|gd}|r|}n'ttjtj z|}t|j|ft||r|}n'ttjtjz|}t|j|ft|gd }d }|rt|j|f|n^ttjtjztj z|}|||j|ks Jd |r|d }nCttjtjzd }|||j}|d ks J|t'jd}|r||}nCttjtjz|}|||j}||dzksJt'jd}|r||}nCttjtjz|}|||j}||dzksJdS)NrcrxzTestByRefVariant failedFooFooFoozTestByRefString failedr)rru皙@ffffff @)rurr皙@)rrgffffff@g!@z)ChangeDoubleSafeArray got the wrong valueryr}rr)TestByRefVariantrrdVT_BYREF VT_VARIANTvalueTestByRefStringVT_BSTRVT_ARRAYVT_UI1rFrrVT_R8SetDoubleSafeArrayVT_R4SetFloatSafeArrayChangeDoubleSafeArrayDoubleInOutStringrrDoubleCurrencyByValVT_CYDoubleDecimalByVal VT_DECIMAL)rrr/vvalsr.expectedrs r#rrws  ## I&)==q A A 1g !888.888&& I&)::E B B !g (???4??? < > a   g #'>>>> /* + +C""3'' I&)==s C C Qg #'>>>>>>r"ctdddl}|jjd}t |d|jjd}t |d tt|j dtd#tj $r }|j tjkrYd}~nd}~wwxYwt!tjtjzd}t!tjtjzd }t!tjtjzd }|||||jd ks J||jdksJ|jd ksJdS) NzTesting DynamicrPyCOMTest.PyCOMTestFPyCOMTest.SimpleCounterryzno exception raised@Trx@)r=win32com.client.dynamicclientdynamic DumbDispatchrrr6 ValueErrorrr3rd com_errorhresultwinerrorDISP_E_TYPEMISMATCHrrrVT_BOOLVT_I4 TestInOutr)win32comrrr4arg1arg2arg3s r# TestDynamicrs """",,-BCCAq%o%223LMMGZe<<<2333   ;(6 6 6  7 6 6 6 6 9?Y%77 = =D 9$y'994 @ @D 9?Y%77 ; ;DKKdD!!! :   d    :     :??????s3*BC ,CC cxtd||}t|trt |tusJnt |t jusJ|jdkrt|j dksJ|jdkrt|j dksJdS)Nz.Checking struct byref as [ in, out ] parameterr{r|dz Nothing is as constant as change) r= ModifyStructrfrtyperd com_recordrr?r)rrmod_rs r#TestStructByrefr s =>>> NN1  E![!!3E{{k)))))E{{i22222 ;"  Q[!1!15E!E!E!E E 3  $F F F F G F Fr"ctdg}tdD]}t|tr't }t |tusJn-t d|}t |tjusJd|_ |dz|_ | |||_ |dz|_ ||sJdS)Nz0Testing struct with SAFEARRAY(VT_RECORD) fields.rtrzThis is record numberr)r=rangerfr)rrr rdrrrappendarray_of_records rec_countVerifyArrayOfStructs)rtest_recrec_listirecs r#TestArrayOfStructsrs ?@@@H 1XX   h 8 9 9 5--C99 +++++**C99 44444/ A  (HQH ! !( + +++ +++r"c ddlm}|d}t|d|d}t|dddlm}|d}t|dt |sJ|d}t|dtd |}t|tj usJt||td |}t|tj usJt||td  t}t #t"$rYnt$$r } t | d} ~ wwxYwt'tt't(t}t|tusJtd |}t|tusJt+t,t&t.t+t"t&t0td |}t|tusJt||t)}t|t(usJt||td|dd} t| }|jdkrt7|jdksJ|\} } t=| t>rt=| t>sJd| d| d~ ~ t+t@|j!dt+t@|j"dt+t,|j!dt+t,|j"d |#dt!d#t"$rYnwxYw |#dt!d#t"$rYnwxYw|$dtK|j$dtMtOdtMtOdtMtOdtMtOdf} tK|j(d| g}tK|j)|ftU|gd}tK|j)|ftU|gd}tK|j+|ftU|tK|j,|ftU|t[}|.d t[}||z }|d!ksJd"|d!z d#tK|j/t`j1ft`j1tK|j2t`j1ft`j1tK|j3t`j1ft`j1tK|j4t`j1ft`j1tK|j5t`j6ft`j6tK|j5t`j7ft`j7tK|j5t`j8ft`j8tK|j5t`j9ft`j9tK|j5t`j:ft`j:tK|j;d$d%|<dd|=ddksJ|>dt|d&}||ks Jd'td(tjAB|t}t||tjAE|t}t||td)dS)*Nr)EnsureDispatchrTr)GetClassz&{8EE0C520-5605-11D0-AE5F-CADD4C000000}z&{B88DD310-BAE8-11D0-AE86-76F2C1000000}z/Testing baseclass pythoncom.com_record structs.r&z8Testing registration of pythoncom.com_record subclasses.rz+Testing subclasses of pythoncom.com_record.z:Testing initialization of pythoncom.com_record subclasses.rr{r|z6GetMultipleInterfaces did not return instances - got 'z', ''rzryzExpected a type errorirY )NNNr)rrcrtli izMemory not freed - delta z MB)rTrx)rFr IPyCOMTestz+CastTo should have returned the same objectzTesting connection pointszFinished generated .py test.)Fwin32com.client.gencacherrrwin32com.client.CLSIDToClassrrgr=rrrdrr r rrr3 TypeError Exceptionr r)r6rr&r+ __reduce__rr?rGetMultipleInterfacesrfr OverflowErrorrrrGetSimpleSafeArrayrFtupler  GetSafeArraysSetIntSafeArrayrSetLongLongSafeArraySetULongLongSafeArrayrU GetByteArrayTest2r Attr2Test3Test4Test5Test6 WideAttr1 WideAttr2 WideAttr3 WideAttr4 WideAttr5r SetParamProp ParamProp paramProprrrDispatchWithEventsrW TestEvents WithEvents)rrrr coclass_ococlassrrr_subr5bufi1i2 resultCheckrll mem_before mem_afterdeltao2handlers r# TestGeneratedrI s777777,--Aq$n677G655555BABBDDIy$  ???Ahh?@@BBG >??? A 77i* * * * *AqmQ''H >>Y1 1 1 1 1q(### GHHH        $$$!#$ +&&&2333 MME ;;+ % % % % =! $ $E ;;+ % % % %%:KHHH$9;UVVV :;;; A 77k ! ! ! !Aq'))H >>5 5 5 5 5q(### IJJJ ++-- " " $ $Q ' *C3H   # #H,>(?(?CS(S(S(S S $ $ & &FB b+ , ,B@Q1R1RNNNNNN R   Z@@@ jAAAQ[%888Q\5999  e$$$4555        c"""4555      A('5r3C3CDDDa//5r#3#3U5995E5EEKAO%7EEE AA%tSVV444 AA%tSVV444   BA*RE3r77;;;A+bUCGG<<< !!JNN#$$$  I  "E ;    VE[>Q    A    < B 777A777 ()))  + +A/A B BBr2o((,>??Gq' +,,,,,sB7E E. E.!E))E.$P PP$P77 QQcg}| tdD]+}|}||,t jd|D]}||||dS#|D]}||||wxYw)Nrtg?) r]r Startr timesleepStoproclose)rrHsessionsrsessions r#r:r:sH MMOOO q % %AggiiG OOG $ $ $ $ 3   G FF7OOOO    G FF7OOOO s AB++AC/c|r||\}}nsttjtjzd}ttjtjzd}|||||j}|j}| ||dS||jksJ||jft|jttfr!d|jD}t|}n|j}t|t|ks&Jt|t|f||ks J||fdS)NrcJg|] }t|tr|jn|!Sr)rfrr).0rs r# z"_TestPyVariant..s-MMMaJq'229MMMr") GetVariantAndTyperrdVT_UI2rrr varianttyperfr%listr) rrrcheckervtr/var_vt var_resultrs r#_TestPyVariantr^sN %%c**CC)I,>>BBY1I4FFJJ  C444 \   2s"7 #)eT]++MM39MMM3ii  ;;$s)) # # #d5kk499%= # # # C<<<%<<<<.check_dispatchs+#, (:9;R(STTTTTTTr"rcrtry) r^rrdrrVT_UI4r VT_DISPATCHrr`r)rrrhrs r#rrs1lGI,>>OcOOOO">>> V V V !Ts!T!TUU U V C """ 1%%%*a///1Q///((++q0002R0000 GNGN~gn22 >???0""$$ayA~~&)r/// F#2/1 &)VAY/// q #g,,   C    "999D999w--&,,.. KLLL MMOOO C q "999QQQQ999 '(((((srs  BBBBBBBBBB.----- ''GLL**D)=PQQ -H0!Qe---&I  E QI Q Q QRRR ,y ! !u,- Eq!QOOO  44444)&44444444)&44444444y344444444!5444HHH    MMM&&&========@}#}#}#@JJJZ@$,,,(Z-Z-Z-z    &&&&8   WWWD=)=)=)@AAA *####&       *$$$$$#####X]  (###L z   NNNGnb))) sx M!!!!!s,C C. C))C.