
    	h%                     
   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SK7  S SK7   " S S\R                  R                  R                   5      r " S S\R                  R                  R                   5      r " S S	\R                  R                  R                   5      r " S
 S\R                  R                  R                   5      r\S:X  a%  \R                  R                  R-                  5         gg)    N)shell)*c                        \ rS rSrS rS rSrg)ShellTester   c           	         [        [        R                  " S[        5      5      nSn[        R
                  " [        R                  S [        R                  [        R                  5      nUR                  [        R                  5      n[        R                  " U5       Vs/ s H"  n[        R                  R                  X5      PM$     nn[        [        R                  " S[        5      5      nUR!                  [        R                  " U5       Vs/ s H"  n[        R                  R                  Xu5      PM$     sn5        U HT  n UR#                  U[$        5        UR)                  S5      u  pUR)                  [        R*                  5      S   nUS-  nMV     US:X  a  [-        S5        g g s  snf s  snf ! [        R&                   a     M  f = f)Nr      zJCould not find any links on your desktop or programs dir, which is unusual)strr   SHGetSpecialFolderPathCSIDL_DESKTOP	pythoncomCoCreateInstanceCLSID_ShellLinkCLSCTX_INPROC_SERVERIID_IShellLinkQueryInterfaceIID_IPersistFileoslistdirpathjoinCSIDL_PROGRAMSextendLoad	STGM_READ	com_errorGetPathSLGP_UNCPRIORITYprint)selfdesktopnum	shellLinkpersistFilennamesprogramsnamefnamefindDatauncs               jC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/test/testShell.pytestShellLinkShellTester.testShellLink   sm   e221mDE..!!**  	
	  ..y/I/IJ35::g3FG3Fag)3FGu33A~FGH9MN9MAbggll8/9MNOD  y1
 (//2OE##E$:$:;A>C1HC  !8\  HN && s   !)F0)F5	F::GGc                    [         R                  " 5       n/ nU H*  nUR                  U[        5      nUR	                  U5        M,     UR                  S[        [        -  [        -  5      n/ nU H*  nUR                  U[        5      nUR	                  U5        M,     UR                  5         UR                  5         U R                  X&5        g Nr   )r   SHGetDesktopFolderGetDisplayNameOfSHGDN_NORMALappendEnumObjectsSHCONTF_FOLDERSSHCONTF_NONFOLDERSSHCONTF_INCLUDEHIDDENsortassertEqual)r    sfnames_1ir(   enumnames_2s          r,   testShellFolderShellTester.testShellFolder.   s    %%'A&&q,7DNN4  
 ~~!336KK
 A&&q,7DNN4   	*     N)__name__
__module____qualname____firstlineno__r-   r@   __static_attributes__rC   rB   r,   r   r      s    :+rB   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	
PIDLTesterB   c                     [         R                  " U5      n[         R                  " U5      nU R                  X15        [         R                  " U5      nU R                  XB5        g N)r   PIDLAsStringStringAsPIDLr:   )r    pidlpidl_strpidl_rtpidl_str_rts        r,   _rtPIDLPIDLTester._rtPIDLC   sN    %%d+$$X.'((1/rB   c                     X4n[         R                  " U5      n[         R                  " U5      nU R                  X55        [         R                  " U5      nU R                  Xd5        g rM   )r   CIDAAsStringStringAsCIDAr:   )r    parentkidscidacida_strcida_rtcida_str_rts          r,   _rtCIDAPIDLTester._rtCIDAJ   sU    |%%d+$$X.'((1/rB   c                    SnU R                  [        R                  " S/5      U5        U R                  S/5        U R                  / SQ5        U R                  S/S-  5        U R	                  [
        [        R                  S5        g )Ns             )rb         s                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   i   foo)r:   r   rN   rT   assertRaises	TypeError)r    expects     r,   testPIDLPIDLTester.testPIDLR   sj    ,++UG4f=eW*+l^d*+)U%7%7?rB   c                     U R                  S/S//5        U R                  S/S//5        U R                  S/S/S/S//5        g )Nrc   rb   rd   )r_   r    s    r,   testCIDAPIDLTester.testCIDA\   sG    eWwi(eWwi(eWw%9:rB   c                 R    SnU R                  [        [        R                  U5        g )Ns    )rg   
ValueErrorr   rO   )r    rP   s     r,   testBadShortPIDLPIDLTester.testBadShortPIDLa   s     *e&8&8$?rB   rC   N)
rD   rE   rF   rG   rT   r_   rj   rn   rr   rH   rC   rB   r,   rJ   rJ   B   s    00@;
@rB   rJ   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)FILEGROUPDESCRIPTORTesterj   c                    [        [        R                  [        R                  5      (       ac  [        R
                  " 5       nUR                  UR                  S-  S-  S9nU[        R                  " SS9-   nU[        R                  " SS9-   nOB[        R                  " S5      n[        R                  " S5      n[        R                  " S5      nXU4$ )Ni  )microsecondr	   )seconds         )

issubclass
pywintypesTimeTypedatetimewin32timezonenowreplacerx   	timedeltaTime)r    ctimeatimewtimes       r,   _getTestTimes'FILEGROUPDESCRIPTORTester._getTestTimesk   s    j))8+<+<==!%%'EMMe.?.?4.G$.NMOEH..q99EH..q99EOOB'EOOB'EOOB'EU""rB   c                    [         R                  " U/5      n[         R                  " U5      S   nUR                  5       nUR                  5       nSU;  a  US	 SU;  a  U R	                  US   S5        US	 U R	                  X5        g )Nr   dwFlags	cFileName )r   FILEGROUPDESCRIPTORAsStringStringAsFILEGROUPDESCRIPTORcopyr:   )r    fd
fgd_stringfd2s       r,   _testRT!FILEGROUPDESCRIPTORTester._testRTx   s    66t<
//
;A>WWYhhj BIb S-r2K !rB   c                 z   [         R                  " / U5      n[        R                  " SS5      nU R	                  X2S [        U5       5        U R                  0 5        0 n[         R                  " U/U5      n[        R                  " SS5      nU R	                  X2S [        U5       5        U R                  U5        g )Nr=   r   r	   )r   r   structpackr:   lenr   )r    make_unicodefgdheaderds        r,   _testSimple%FILEGROUPDESCRIPTORTester._testSimple   s    //LAS!$]s6{!34R//\BS!$]s6{!34QrB   c                 &    U R                  S5        g )NFr   rm   s    r,   testSimpleBytes)FILEGROUPDESCRIPTORTester.testSimpleBytes   s    rB   c                 &    U R                  S5        g )NTr   rm   s    r,   testSimpleUnicode+FILEGROUPDESCRIPTORTester.testSimpleUnicode   s    rB   c           
          [         R                  " S5      nU R                  5       u  p#nSUSS[        R                  UUU[
        R                  S-   S.	nU R                  U5        g )Nz&{CD637886-DB8B-4b04-98B5-25731E1495BE}foo.txtr	            r	   )	r   clsidsizelpointldwFileAttributesftCreationTimeftLastAccessTimeftLastWriteTime	nFileSize)r~   IIDr   win32conFILE_ATTRIBUTE_NORMALsysmaxsizer   )r    r   r   r   r   r   s         r,   testComplex%FILEGROUPDESCRIPTORTester.testComplex   sa    GH"002e" ( > ># %$q

 	QrB   c                    U R                  5       u  pnSSS[        R                  UUU[        R                  S-   S.SSS[        R                  UUU[        R                  S-   S.SSS[        R                  UUU[        R                  S-   S./n[
        R                  " US5      n[
        R                  " U5      nU H  nUS	 M     U R                  XF5        g )	Nr   r   r   r	   )r   r   r   r   r   r   r   r   zfoo2.txtu	   foo©.txtr   )	r   r   r   r   r   r   r   r   r:   )r    r   r   r   r   sd2ts           r,   testUnicode%FILEGROUPDESCRIPTORTester.testUnicode   s    "002e ' $,$B$B"'$)#( [[1_	 ( $,$B$B"'$)#( [[1_	 + $,$B$B"'$)#( [[1_	+
@ --a3..q1A) rB   rC   N)rD   rE   rF   rG   r   r   r   r   r   r   r   rH   rC   rB   r,   ru   ru   j   s%    #" 	  ( rB   ru   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
FileOperationTester   c                    SS K n[        R                  R                  UR	                  5       S5      U l        [        R                  R                  UR	                  5       S5      U l        SU l        [        U R
                  S5      nUR                  U R                  5        UR                  5          [        R                  " U R                  5        g ! [         a     g f = f)Nr   pywin32_testshellpywin32_testshell_dests   Hello from Pythonwb)tempfiler   r   r   
gettempdirsrc_name	dest_name	test_dataopenwritecloseunlinkOSError)r    r   fs      r,   setUpFileOperationTester.setUp   s    X%8%8%:<OPh&9&9&;=UV.%				IIdnn% 		s   4 C 
C"!C"c                     U R                   U R                  4 H?  n[        R                  R	                  U5      (       d  M)  [        R
                  " U5        MA     g rM   )r   r   r   r   isfiler   )r    r)   s     r,   tearDownFileOperationTester.tearDown   s8    mmT^^4Eww~~e$$		%  5rB   c                    S[         U R                  U R                  4n[        R                  " U5      u  p#U R                  U(       + 5        U R                  SU5        U R                  [        R                  R                  U R                  5      5        U R                  [        R                  R                  U R                  5      5        g r0   )
FO_COPYr   r   r   SHFileOperation
assertTruer:   r   r   r   r    r   rcaborteds       r,   testCopyFileOperationTester.testCopy   s    7++A.G$Bt}}56t~~67rB   c                    S[         U R                  U R                  4n[        R                  " U5      u  p#U R                  U(       + 5        U R                  SU5        U R                  [        R                  R                  U R                  5      5        U R                  [        R                  R                  U R                  5      (       + 5        g r0   )
	FO_RENAMEr   r   r   r   r   r:   r   r   r   r   s       r,   
testRenameFileOperationTester.testRename   s    	4==$..9++A.G$Bt~~67BGGNN4==99:rB   c                    S[         U R                  U R                  4n[        R                  " U5      u  p#U R                  U(       + 5        U R                  SU5        U R                  [        R                  R                  U R                  5      5        U R                  [        R                  R                  U R                  5      (       + 5        g r0   )
FO_MOVEr   r   r   r   r   r:   r   r   r   r   s       r,   testMoveFileOperationTester.testMove   s    7++A.G$Bt~~67BGGNN4==99:rB   c                 0   S[         U R                  S [        4n[        R                  " U5      u  p#U R                  U(       + 5        U R                  SU5        U R                  [        R                  R                  U R                  5      (       + 5        g r0   )
	FO_DELETEr   FOF_NOCONFIRMATIONr   r   r   r:   r   r   r   r   s       r,   
testDeleteFileOperationTester.testDelete  sn    MM
 ++A.G$BBGGNN4==99:rB   )r   r   r   N)rD   rE   rF   rG   r   r   r   r   r   r   rH   rC   rB   r,   r   r      s     !
8;;;rB   r   __main__)r   r   r   r   r   r~   win32com.test.utilwin32comr   r   win32com.shellr   win32com.shell.shellconwin32com.storagecontestutilTestCaser   rJ   ru   r   rD   testmainrC   rB   r,   <module>r      s     	  
        % !/+(--$$-- /+d"@##,, "@Pg  2 2 ; ; g T8;(--,,55 8;v zMM! rB   