
    daf                         d dl Z d dlZd dlmZmZmZ  ej                  ddg      Zd Z G d dej                        Z
y)	    N)import_helperrequires_resourceLOOPBACK_TIMEOUT_wmiwin)required_onc                     	 t         j                  |       S # t        $ r Y n%t        $ r}|j                  dk7  r Y d }~nd }~ww xY wt        j                  t               t         j                  |       S )Ni  )r   
exec_queryBrokenPipeErrorWindowsErrorwinerrortimesleepr   )queryes     (/root/Python-3.12.4/Lib/test/test_wmi.pywmi_exec_queryr      sc    u%%  ::  	JJ ??5!!s    	AA?Ac                   R    e Zd Zd Zd Zd Zd Zd Z ed      d        Z	d Z
d	 Zy
)WmiTestsc                 "   t        d      j                  d      }| j                  dt        |             |d   j	                  d      \  }}}| j                  d||d          | j                  d||d          | j                  |d|d          y )Nz)SELECT Version FROM Win32_OperatingSystem    r   =Versionz\d+\.\d+.+$)r   splitassertEquallen	partitionassertRegex)selfrkeqvs        r   test_wmi_query_os_versionz"WmiTests.test_wmi_query_os_version   s    FGMMdSCF#Q4>>#&2qb!A$'Aqt, 	NAaD1    c                 D    t        d      D ]  }| j                           y N
   )ranger%   r    _s     r   test_wmi_query_repeatedz WmiTests.test_wmi_query_repeated%   s!    r 	-A**,	-r&   c                     	 t        d       | j                  d       y # t        $ r!}|j                  dz  dk(  rY d }~y Y d }~7d }~ww xY w)Nz.SELECT InvalidColumnName FROM InvalidTableNamel    l     zExpected OSError)r   OSErrorr   fail)r    exs     r   test_wmi_query_errorzWmiTests.test_wmi_query_error*   sJ    	KL
 			$%	  	{{Z':5 6	s    	A	AA	c                 D    t        d      D ]  }| j                           y r(   )r*   r2   r+   s     r   test_wmi_query_repeated_errorz&WmiTests.test_wmi_query_repeated_error4   s!    r 	(A%%'	(r&   c                 n    | j                  t              5  t        d       d d d        y # 1 sw Y   y xY w)Nz0not select, just in case someone tries something)assertRaises
ValueErrorr   )r    s    r   test_wmi_query_not_selectz"WmiTests.test_wmi_query_not_select8   s2    z* 	OMN	O 	O 	Os   +4cpuc                     t        d      D ]+  }| j                  t              5  t        d       d d d        - y # 1 sw Y   8xY w)N   zSELECT * FROM CIM_DataFile)r*   r6   r/   r   r+   s     r   test_wmi_query_overflowz WmiTests.test_wmi_query_overflow=   sH     q 	=A""7+ =;<= =	== =s	   ;A	c                 `   t        d      }| j                  |j                  d      |       | j                  |j                  d      |       t	        |j                  d            }	 	 | j                  t        |      d       | j                  dt        |             7# t        $ r Y y w xY w)N:SELECT ProcessId FROM Win32_Process WHERE ProcessId < 1000r   zProcessId=\d+ )
r   assertFalse
startswithendswithiterr   r   nextr   StopIteration)r    r!   its      r   test_wmi_query_multiple_rowsz%WmiTests.test_wmi_query_multiple_rowsE   s    WXd+Q/D)1-!''$- 	  b+;<  T"X.   		s   )8B! !	B-,B-c                     ddl m} d} |d      5 }t        d      D cg c]  }|j                  t        |       }}|D ]"  }| j                  |j                         d       $ 	 d d d        y c c}w # 1 sw Y   y xY w)Nr   )ThreadPoolExecutorr>          z
ProcessId=)concurrent.futuresrI   r*   submitr   r   result)r    rI   r   poolr,   taskts          r   test_wmi_query_threadszWmiTests.test_wmi_query_threadsR   sx    9L" 	;d@Eb	J1DKK6JDJ ;  \:;	; 	;J	; 	;s   A4A/)A4/A44A=N)__name__
__module____qualname__r%   r-   r2   r4   r8   r   r<   rG   rR    r&   r   r   r      s?    2-
&(O
 u= =;r&   r   )r   unittesttest.supportr   r   r   import_moduler   r   TestCaser   rV   r&   r   <module>r[      sB      K K #}""6w?
">;x   >;r&   