
    %
i'                        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Zd dl	Z	d dl
mZ  G d de          Z G d dej                  Z G d dej                  Z G d	 d
ej                  Z G d dej                  Z G d dej                  Z G d dej                  Zedk    r ej                     dS dS )    N)TestSkippedc                       e Zd ZdS )	TestErrorN)__name__
__module____qualname__     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/test/test_win32api.pyr   r      s        Dr
   r   c                       e Zd Zd ZdS )CurrentUserTestCasec                     t          j                    }|dk    rt          d          | dt          j                     }|                     |t          j        t           j                             d S )NzNT AUTHORITYzrunning as service account\)win32apiGetDomainNamer   GetUserNameassertEqualGetUserNameExNameSamCompatible)selfdomainnames      r   testGetCurrentUserz&CurrentUserTestCase.testGetCurrentUser   sp    '))^##:;;;44H02244x5h6PQQRRRRRr
   N)r   r   r   r   r	   r
   r   r   r      s(        S S S S Sr
   r   c                        e Zd Zd Zd Zd ZdS )TestTimec                 J   t          j                    \  }}|t          j        k    r|d         }|d         }n|d         }|d         }|                                 t          |t          j                  s+t          |t                    s|                                 d S d S d S )N            )	r   GetTimeZoneInformationwin32conTIME_ZONE_ID_DAYLIGHTencode
isinstancedatetimetupleFormat)r   rctzinfotz_strtz_times        r   testTimezonezTestTime.testTimezone    s    466
F///AYFQiGGAYFQiG'8#455 	jU?
 ?
 	 NN	 	 	 	r
   c                    d}|}t          j        d|d            t          j        d|d           t          j        d|t          j                                                   t          j        d|t	          j                               d S )Nr    r   )r   GetDateFormatr&   nowtime)r   DATE_LONGDATE
date_flagss      r   TestDateFormatzTestTime.TestDateFormat0   s{    "
q*d333q*a000q*h.?.C.C.E.EFFFq*dikk:::::r
   c                    t          j        ddd            t          j        ddd           t          j        ddt          j                                                   t          j        ddt	          j                               d S )Nr   )r   GetTimeFormatr&   r0   r1   r   s    r   TestTimeFormatzTestTime.TestTimeFormat8   sq    q!T***q!Q'''q!X%6%:%:%<%<===q!TY[[11111r
   N)r   r   r   r-   r4   r8   r	   r
   r   r   r      sA           ; ; ;2 2 2 2 2r
   r   c                   $    e Zd ZdZd Zd Zd ZdS )RegistryzPythonTestHarness\Whateverc                      fd}	 	 	  |             n#  t           xY w	 t          j        t          j         j                   d S # t          j        t          j         j                   w xY w# t           $ r Y d S w xY w)Nc                  Z    t          j        t          j        j                  } t
          )N)r   RegCreateKeyr"   HKEY_CURRENT_USERkey_namer   hkeyr   s    r   reg_operationz%Registry.test1.<locals>.reg_operationD   s    ()CT]SSDOr
   )r   r   RegDeleteKeyr"   r>   r?   )r   rB   s   ` r   test1zRegistry.test1B   s    	 	 	 	 	
		Q$!MOOOO$#O $ %h&@$-PPPPP%h&@$-PPPP 	 	 	DD	s/   
 A 	A $A1 &A..A1 1
A?>A?c                 (   d}d t           j        dfdt           j        dfdt           j        dfdt           j        g dfd	t           j        g fd
t           j        dfdt           j        dfdt           j        dfdt           j        dff	}t          j        t           j	        |          }|D ]\  }}}t          j
        ||d ||           |D ]J\  }}}t          j        ||          \  }}	|                     |	|           |                     ||           Kd S )NzPythonTestHarness\win32apizThis is default unnamed valueREG_SZzREG_SZ text dataREG_EXPAND_SZz%systemdir%REG_MULTI_SZ)zstring 1zstring 2zstring 3zstring 4REG_MULTI_SZ_empty	REG_DWORDi  REG_QWORD_INTc   	REG_QWORDl        
REG_BINARYs     )r"   rF   rG   rH   rJ   rM   rN   r   r=   r>   RegSetValueExRegQueryValueExr   )
r   r?   valuesrA   
value_namereg_typedata	orig_type	orig_datatyps
             r   
testValueszRegistry.testValuesT   sG   0 8?$CDx(:;h4mD %@@@
 "8#8"=(,c2h0"5(,e4#?
* $X%?JJ*0 	K 	K&J$"4T8TJJJJ06 	. 	.,J	9 0zBBID#S),,,T9----	. 	.r
   c                      fd}t          j        d ddd           }t          j        t          j        dt          j        |d           t          j        |d          }                     |t          j	        k                |             t          j        |d          }                     |t          j
        k               d S )Nc                  .   t          j        t          j        j                  } 	 t          j        | d t          j        d           t          j        t          j        j                   d S # t          j        t          j        j                   w xY w)Nfoo)r   r=   r"   r>   r?   RegSetValuerF   rC   r@   s    r   changez)Registry.testNotifyChange.<locals>.changev   su    ()CT]SSDQ$T4%HHH%h&@$-PPPPP%h&@$-PPPPs   !A. .&Br   r   T)
win32eventCreateEventr   RegNotifyChangeKeyValuer"   r>   REG_NOTIFY_CHANGE_LAST_SETWaitForSingleObject
assertTrueWAIT_TIMEOUTWAIT_OBJECT_0)r   r]   evtret_codes   `   r   testNotifyChangezRegistry.testNotifyChangeu   s    	Q 	Q 	Q 	Q 	Q $T1a66
 	(&/	
 	
 	
 1#q99H$99:::1#q99H$::;;;;;r
   N)r   r   r   r?   rD   rX   rh   r	   r
   r   r:   r:   ?   sG        ,H  $. . .B< < < < <r
   r:   c                        e Zd Zd Zd Zd ZdS )	FileNamesc                    	 t           }n"# t          $ r t          j        d         }Y nw xY wt          j                            |                                          }t          j	        |                                          }t          j
        |                                          }|                     ||k    d| d| d           |                     |t          j        |                                                     t          j        |                                          }|                     t          |t                    dt!          |           d           |                     ||k    d| d| d           d S Nr   zExpected long name ('z') to be original name ('z')z GetLongPathNameW returned type '')__file__	NameErrorsysargvospathabspathlowerr   GetShortPathNameGetLongPathNamerc   r   GetLongPathNameWr%   strtyper   mefname
short_name	long_names        r   testShortLongPathNamesz FileNames.testShortLongPathNames   s   	BB 	 	 	!BBB	##))++.u55;;==
,Z88>>@@	QIQQQQQ	
 	
 	
 	H$=j$I$I$O$O$Q$QRRR-j99??AA	y#&&AtIAAA	
 	
 	
 	QIQQQQQ	
 	
 	
 	
 	
   
 ))c                 x   	 t           }n"# t          $ r t          j        d         }Y nw xY wt          j                            |                                          }t          j	        t          |                                                    }|                     t          |t                               t          j        |                                          }|                     ||k    d| d| d           |                     |t          j        |                                                     t          j        |                                          }|                     t          |t                    dt!          |           d           |                     ||k    d| d| d           d S rl   )rn   ro   rp   rq   rr   rs   rt   ru   r   rv   ry   rc   r%   rw   r   rx   rz   r{   s        r   testShortUnicodeNameszFileNames.testShortUnicodeNames   s   	BB 	 	 	!BBB	##))++.s5zz::@@BB

:s33444,Z88>>@@	QIQQQQQ	
 	
 	
 	H$=j$I$I$O$O$Q$QRRR-j99??AA	y#&&AtIAAA	
 	
 	
 	QIQQQQQ	
 	
 	
 	
 	
r   c                 J   dd l }d}t          j        t          j                              }dt
          j                            ||          z   }	 |                    |d            n2# t          j	        $ r }|j
        t          j        k    r Y d }~nd }~ww xY w	 	 t          j        |          }n2# t          j	        $ r }|j
        t          j        k    r Y d }~nd }~ww xY wt          j        t          |                    }|                     |t           j        z  |           t          j        |          }|                     |                                |                                           |                    |           d S # |                    |           w xY w)Nr   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz\\?\)	win32filer   rx   tempfile
gettempdirrr   rs   joinCreateDirectoryWerrorwinerrorERROR_ALREADY_EXISTSGetFileAttributesERROR_FILENAME_EXCED_RANGEry   rc   r"   FILE_ATTRIBUTE_DIRECTORYr   ru   RemoveDirectory)r   r   basenamelong_temp_dirr}   detailsattrr   s           r   testLongLongPathNameszFileNames.testLongLongPathNames   s    	 !1(2E2G2GHHBGLLAAA	&&ud3333~ 	 	 	8#@@@ A@@@@		-1%88>   #x'JJJ KJJJJ -c%jj99DOOD8#DDdKKK 1%88IY__..>>>%%e,,,,,I%%e,,,,sI   A' 'B6BBB0 /F 0C?CF CBF F"N)r   r   r   r   r   r   r	   r
   r   rj   rj      sA        
 
 
.
 
 
2- - - - -r
   rj   c                       e Zd Zd ZdS )FormatMessagec                     d}ddg}t          j        t          j        |dd|          }|                     |d           d S )NzHello %1, how are you %2?Marktodayr   zHello Mark, how are you today?)r   r   r"   FORMAT_MESSAGE_FROM_STRINGr   )r   msginsertsresults       r   test_FromStringzFormatMessage.test_FromString   sT    )7#'/
 
 	!ABBBBBr
   N)r   r   r   r   r	   r
   r   r   r      s(        
C 
C 
C 
C 
Cr
   r   c                   &    e Zd Zd Zd Zd Zd ZdS )Miscc                     dddt           j        fD ]=}t          j        |           |                     |t          j                               >d S )Nr   r   )r   TRUST_E_PROVIDER_UNKNOWNr   SetLastErrorr   GetLastError)r   xs     r   test_last_errorzMisc.test_last_error   sZ    QH=> 	9 	9A!!$$$Q 5 7 78888	9 	9r
   c                 V    |                      t          j        d          d           d S )N     )r   r   	VkKeyScanr7   s    r   testVkKeyScanzMisc.testVkKeyScan   s)    +C00"55555r
   c                 X    |                      t          j        dd          d           d S )Nr   r   r   )r   r   VkKeyScanExr7   s    r   testVkKeyScanExzMisc.testVkKeyScanEx   s+    -c155r:::::r
   c                     t          j                    }|                     |t                     d}|                     t          |          t          |                     d S )N)ACLineStatusBatteryFlagBatteryLifePercentSystemStatusFlagBatteryLifeTimeBatteryFullLifeTime)r   GetSystemPowerStatusassertIsInstancedictr   set)r   sps	test_keyss      r   testGetSystemPowerStatuszMisc.testGetSystemPowerStatus  sW    +--c4(((
	 	YS22222r
   N)r   r   r   r   r   r   r   r	   r
   r   r   r      sP        9 9 9
6 6 6; ; ;3 3 3 3 3r
   r   __main__)r&   rr   rp   r   r1   unittestr   r"   r^   r   pywin32_testutilr   	Exceptionr   TestCaser   r   r:   rj   r   r   r   mainr	   r
   r   <module>r      s    				 



           ( ( ( ( ( (	 	 	 	 		 	 	 	S S S S S(+ S S S2 2 2 2 2x  2 2 2@P< P< P< P< P<x  P< P< P<fP- P- P- P- P-! P- P- P-fC C C C CH% C C C3 3 3 3 38 3 3 3: zHMOOOOO r
   