oi%ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl Tddl TGddejjjZGddejjjZGdd ejjjZGd d ejjjZed kr ejjdSdS) N)shell)*ceZdZdZdZdS) ShellTesterc ttjdt d}t jtjdtjtj}| tj } fdtj D}ttjdt | fdtj D|D]v} ||t n#tj$rY0wxYw|d\}}|tjd}|dz }w|dkrt)ddSdS)NrcPg|]"}tj|#Sospathjoin).0ndesktops GC:\PYTHON\Scheduler\python\Lib\site-packages\win32com/test/testShell.py z-ShellTester.testShellLink..s)GGGagq))GGGcPg|]"}tj|#Sr r )rrprogramss rrz-ShellTester.testShellLink..s)NNNAbgll8Q//NNNrzJCould not find any links on your desktop or programs dir, which is unusual)strrSHGetSpecialFolderPath CSIDL_DESKTOP pythoncomCoCreateInstanceCLSID_ShellLinkCLSCTX_INPROC_SERVERIID_IShellLinkQueryInterfaceIID_IPersistFiler listdirCSIDL_PROGRAMSextendLoad STGM_READ com_errorGetPathSLGP_UNCPRIORITYprint) selfnum shellLink persistFilenamesnamefnamefindDatauncrrs @@r testShellLinkzShellTester.testShellLinkse21mDDEE.  !   *     ..y/IJJ GGGG2:g3F3FGGGu3A~FFGG NNNNH9M9MNNNOOO  D   y1111&    (//22OE8##E$:;;A>C 1HCC !88 \      8s?DD-,D-ctj}g}|D]2}||t}||3|dt tztz}g}|D]2}||t}||3| | | ||dSNr) rSHGetDesktopFolderGetDisplayNameOf SHGDN_NORMALappend EnumObjectsSHCONTF_FOLDERSSHCONTF_NONFOLDERSSHCONTF_INCLUDEHIDDENsort assertEqual)r*sfnames_1ir/enumnames_2s rtestShellFolderzShellTester.testShellFolder.s  % ' ' ! !A&&q,77D NN4 ~~ !336KK   ! !A&&q,77D NN4    '*****rN)__name__ __module__ __qualname__r3rEr rrrrs2:+++++rrc,eZdZdZdZdZdZdZdS) PIDLTesterctj|}tj|}|||tj|}|||dSN)r PIDLAsString StringAsPIDLr?)r*pidlpidl_strpidl_rt pidl_str_rts r_rtPIDLzPIDLTester._rtPIDLCsd%d++$X.. $'''(11  h/////rc||f}tj|}tj|}|||tj|}|||dSrL)r CIDAAsString StringAsCIDAr?)r*parentkidscidacida_strcida_rt cida_str_rts r_rtCIDAzPIDLTester._rtCIDAJsmt|%d++$X.. w'''(11  h/////rc4d}|tjdg||dg|gd|dgdz|t tjddS)Ns)r_sifoo)r?rrMrS assertRaises TypeError)r*expects rtestPIDLzPIDLTester.testPIDLRs, +UG44f=== eW ***+++ l^d*+++ )U%7?????rc|dgdgg|dgdgg|dgdgdgdggdS)Nr`r_ra)r]r*s rtestCIDAzPIDLTester.testCIDA\s_ eWwi((( eWwi((( eWw%9:::::rcVd}|ttj|dS)Ns)rd ValueErrorrrN)r*rOs rtestBadShortPIDLzPIDLTester.testBadShortPIDLas(  *e&8$?????rN)rFrGrHrSr]rgrjrmr rrrJrJBsg000000@@@;;; @@@@@rrJc8eZdZdZdZdZdZdZdZdZ dS) FILEGROUPDESCRIPTORTestercttjtjret j}||jdzdz}|tjdz}|tjdz}n WWYYhhjj B  I b   S-r 2 2 2K  S!!!!!rctjg|}tjdd}|||dt ||ii}tj|g|}tjdd}|||dt |||dS)NrBrr)rrstructpackr?lenr)r* make_unicodefgdheaderds r _testSimplez%FILEGROUPDESCRIPTORTester._testSimples/LAAS!$$ ]s6{{]!3444 R /\BBS!$$ ]s6{{]!3444 Qrc0|ddS)NFrris rtestSimpleBytesz)FILEGROUPDESCRIPTORTester.testSimpleBytess rc0|ddS)NTrris rtestSimpleUnicodez+FILEGROUPDESCRIPTORTester.testSimpleUnicodes rc tjd}|\}}}d|ddtj|||t jdzd }||dS)Nz&{CD637886-DB8B-4b04-98B5-25731E1495BE}foo.txtrr) rclsidsizelpointldwFileAttributesftCreationTimeftLastAccessTimeftLastWriteTime nFileSize)rwIIDrwin32conFILE_ATTRIBUTE_NORMALsysmaxsizer)r*rrrrrs r testComplexz%FILEGROUPDESCRIPTORTester.testComplexsoGHH"0022ue" ( ># %$q  Qrc |\}}}dddtj|||tjdzddddtj|||tjdzddddtj|||tjdzdg}t j|d}t j|}|D]}|d=|||dS) Nrrrr)rrrrrrrrzfoo2.txtu foo©.txtr) rrrrrrrrr?)r*rrrrsd2ts r testUnicodez%FILEGROUPDESCRIPTORTester.testUnicodes"0022ue' $,$B"'$)#( [1_  ( $,$B"'$)#( [1_  + $,$B"'$)#( [1_  + @  -a 3 3  .q 1 1  A)  BrN) rFrGrHrrrrrrrr rrrorojs} # # #"""       ( ( ( ( ( rroc2eZdZdZdZdZdZdZdZdS)FileOperationTestercddl}tj|d|_tj|d|_d|_t|jd}| |j|  tj |jdS#t$rYdSwxYw)Nrpywin32_testshellpywin32_testshell_destsHello fromPythonwb) tempfiler r r gettempdirsrc_name dest_name test_dataopenwritecloseunlinkOSError)r*rfs rsetUpzFileOperationTester.setUps X%8%8%:%:C C'&C'c|j|jfD]5}tj|rtj|6dSrL)rrr r isfiler)r*r0s rtearDownzFileOperationTester.tearDownsKmT^4 ! !Ew~~e$$ ! %    ! !rcdt|j|jf}tj|\}}|| |d||tj |j|tj |jdSr5) FO_COPYrrrSHFileOperation assertTruer?r r rr*rrcaborteds rtestCopyzFileOperationTester.testCopys  7+A.. G G $$$ B t}55666 t~6677777rcdt|j|jf}tj|\}}|| |d||tj |j|tj |j dSr5) FO_RENAMErrrrrr?r r rrs r testRenamezFileOperationTester.testRenames  4=$. 9+A.. G G $$$ B t~66777 BGNN4=999:::::rcdt|j|jf}tj|\}}|| |d||tj |j|tj |j dSr5) FO_MOVErrrrrr?r r rrs rtestMovezFileOperationTester.testMoves  7+A.. G G $$$ B t~66777 BGNN4=999:::::rc(dt|jdtf}tj|\}}|| |d||tj |j dSr5) FO_DELETErFOF_NOCONFIRMATIONrrrr?r r rrs r testDeletezFileOperationTester.testDeletes  M    +A.. G G $$$ B BGNN4=999:::::rN) rFrGrHrrrrrrr rrrrsn   !!! 888;;;;;; ; ; ; ; ;rr__main__)ryr rrrrwwin32com.test.utilwin32comrrzwin32com.shellrwin32com.shell.shellconwin32com.storagecontestutilTestCaserrJrorrFtestmainr rrrs  %%%%!!!!/+/+/+/+/+(-$-/+/+/+d"@"@"@"@"@#,"@"@"@Pg g g g g  2 ;g g g T8;8;8;8;8;(-,58;8;8;v z M!!!!!r