zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
U
W±df+ã@sŒddlZddlZddlZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z dej kZGdd„de jƒZedkrˆe ¡dS)    éN)Úpywin32)Úerror)ÚcompatZSKIP_WINE_KNOWN_FAILURESc@sÌeZdZejZdd„Zdd„Zej    e
j dfdd„ƒZ ej    e
j fdd    „ƒZ d
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*S)+Ú TestWin32APIcCst ¡|_t tj|j¡dS©N)ÚtempfileÚmkdtempÚtempdirÚshutilÚcopyÚsysÚ
executable©Úself©rúVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\win32ctypes/tests/test_win32api.pyÚsetUps
zTestWin32API.setUpcCst |j¡dSr)r
Úrmtreer    rrrrÚtearDown"szTestWin32API.tearDownéc    cs*| |d|¡}z
|VW5| |¡XdS)Nr)Ú LoadLibraryExÚ FreeLibrary)rÚmoduleÚlibraryÚflagsÚhandlerrrÚ load_library%s
zTestWin32API.load_libraryc
cs*| |d¡}z
|VW5| |d¡XdS)NF)ÚBeginUpdateResourceÚEndUpdateResource)rrrrrrrÚresource_update-s 
zTestWin32API.resource_updatec
Csd| t¡*}| |j¡}| ||¡W5QRXW5QRX| t¡|j ddd¡W5QRXdS)Nzttt.dllrr)rÚwin32apirÚ assertEqualÚ assertRaisesrr)rÚexpectedrrrrÚtest_load_library_ex5s
   z!TestWin32API.test_load_library_exc    Csd| t¡.}| t |¡dk¡| |j |¡d¡W5QRX| t¡|j d¡W5QRXdS)Nréýÿÿÿ)rr Ú
assertTruerÚassertNotEqualrr"r)rrrrrÚtest_free_library=s
  zTestWin32API.test_free_libraryc    Csz| td¡}t |¡}W5QRX| tjd¡}|j |¡}W5QRX| ||¡| t¡|j d¡W5QRXdS)Nú shell32.dllr%)rr ÚEnumResourceTypesrrr!r"r)rrr#Úresource_typesrrrÚtest_enum_resource_typesEs  z%TestWin32API.test_enum_resource_typesc    Csš| td¡`}t |¡}|D]J}t ||¡}|j ||¡}| ||¡|j || |¡¡}| ||¡qW5QRX| t¡|j dd¡W5QRXdS)Nr)ré)    rr r*ÚEnumResourceNamesrr!Ú_id2strr"r)rrr+Ú resource_typer#Úresource_namesrrrÚtest_enum_resource_namesQs 
 ÿ ÿ z%TestWin32API.test_enum_resource_namesc
Cs¾| td¡‚}t |¡}|D]l}t ||¡}|D]V}t |||¡}|j |||¡}| ||¡|j || |¡| |¡¡}| ||¡q0qW5QRX| t    ¡|j ||d¡W5QRXdS)Nr)i»)
rr r*r.ÚEnumResourceLanguagesrr!r/r"r)rrr+r0r1Ú resource_namer#Úresource_languagesrrrÚtest_enum_resource_languagesas6
ÿÿÿ þ z)TestWin32API.test_enum_resource_languagesc
CsÒ| td¡”}t |¡}|D]~}t ||¡}|D]h}t |||¡}|D]P}t ||||¡}|j ||||¡}    |j || |¡| |¡|¡}    | |    |¡qFq0qW5QRX|     t
¡|j |||d¡W5QRXdS)Nz explorer.exei“0) rr r*r.r3Ú LoadResourcerr/r!r"r)
rrr+r0r1r4r5Úresource_languager#ÚresourcerrrÚtest_load_resourcevsP
ÿÿþþý ÿzTestWin32API.test_load_resourcecCs| |j ¡d¡dS)Ng)Z assertGreaterrZ GetTickCountrrrrÚtest_get_tick_count‘sz TestWin32API.test_get_tick_countc    CsÌ|j}tj |jd¡}| ||¡}t| |¡ƒ}W5QRX| |d¡}|     |d¡| ||¡}| 
t| |¡ƒ|¡W5QRX| |d¡}|     |d¡| ||¡}| 
t| |¡ƒ|¡W5QRXdS)Nú
python.exeFT) rÚosÚpathÚjoinr    rÚlenr*rrr!)rrÚfilenamerÚcountrrrÚ"test_begin_and_end_update_resource”s     z/TestWin32API.test_begin_and_end_update_resourcec    Csntr| d¡|j}tj |jd¡}| |d¡}| |d¡|     ||¡}| 
t |  |¡ƒd¡W5QRXdS)Nz0EnumResourceTypes known failure on wine, see #59r<TFr) Ú skip_on_wineÚskipTestrr=r>r?r    rrrr!r@r*)rrrArrrrÚ!test_begin_removing_all_resources«s
  z.TestWin32API.test_begin_removing_all_resourcesc    CsFtr| d¡| t¡}|j dd¡W5QRX| |jjd¡dS)Nz2BeginUpdateResource known failure on wine, see #59ÚinvalidFr)    rDrEr"rrrr'Ú    exceptionÚwinerror©rÚcontextrrrÚ'test_begin_update_resource_with_invalid»s
 
 z4TestWin32API.test_begin_update_resource_with_invalidc    CsFtr| d¡| t¡}|j dd¡W5QRX| |jjd¡dS)Nz0EndUpdateResource known failure on wine, see #59r%Fr)    rDrEr"rrrr'rHrIrJrrrÚ%test_end_update_resource_with_invalidÅs
 
 z2TestWin32API.test_end_update_resource_with_invalidc        Csþ|j}tj |jd¡}| |j|¡F}| |¡d}| ||¡d}| |||¡d}|     ||||¡}W5QRX| 
|j|¡ }|  ||||dd…|¡W5QRX| |j|¡}|     ||||¡}W5QRX|  t |ƒt |ƒd¡|  ||dd…¡dS)Nr<éÿÿÿÿéþÿÿÿr)rr=r>r?r    rr*r.r3r7rÚUpdateResourcer!r@)    rrrArr0r4r8r9ÚupdatedrrrÚtest_update_resourceÏsFÿÿÿ
þÿz!TestWin32API.test_update_resourcec
Cs¦|j}tj |jd¡}| ||¡6}| |¡d}| ||¡d}| |||¡d}W5QRXd}|     ||¡.}| 
t ¡|  |||||¡W5QRXW5QRXdS)Nr<rNuΔ) rr=r>r?r    rr*r.r3rr"Ú    TypeErrorrP)rrrArr0r4r8r9rrrÚ!test_update_resource_with_unicodeès,ÿÿ þz.TestWin32API.test_update_resource_with_unicodecCs>t ¡}|j ¡}| |t¡| | ¡d¡| ||¡dS)Nz
c:\windows)r ZGetWindowsDirectoryrÚassertIsInstanceÚstrr!Úlower©rr#ÚresultrrrÚtest_get_windows_directoryús
 
 z'TestWin32API.test_get_windows_directorycCs>t ¡}|j ¡}| |t¡| | ¡d¡| ||¡dS)Nzc:\windows\system32)r ZGetSystemDirectoryrrUrVr!rWrXrrrÚtest_get_system_directorys
 
 z&TestWin32API.test_get_system_directorycCst|dƒr|Sd |¡SdS)NÚindexz#{0})ÚhasattrÚformat)rZtype_idrrrr/s
zTestWin32API._id2strN)Ú__name__Ú
__module__Ú __qualname__rr rrrÚ
contextlibÚcontextmanagerr r rrr$r(r,r2r6r:r;rCrFrLrMrRrTrZr[r/rrrrrs. 
 
  rÚ__main__)r=r Zunittestrbrr
r Z win32ctypesrZwin32ctypes.pywin32.pywintypesrZwin32ctypes.testsrÚenvironrDZTestCaserr_ÚmainrrrrÚ<module>s