
    0hh>                         S SK r S SKrS SKJr  S SKJr  \R                  " SS/S9rS r " S S	\R                  5      r
g)
    N)support)import_helper_wmiwin)required_onc                     [         R                  " [         R                  5       H  n [        R	                  U 5      s  $    g ! [
         a     M+  [         a  nUR                  S:w  a  e  S nAMK  S nAff = f)Ni  )r   sleeping_retryLONG_TIMEOUTr   
exec_queryBrokenPipeErrorWindowsErrorwinerror)query_excs      6/opt/python-3.13.8/usr/lib/python3.13/test/test_wmi.pywmi_exec_queryr      sb    ##G$8$89	??5)) :  	 	||s" #	s   A
A5	A5A00A5c                   n    \ rS rSrS rS rS rS rS r\	R                  " S5      S 5       rS	 rS
 rSrg)WmiTests   c                    [        S5      R                  S5      nU R                  S[        U5      5        US   R	                  S5      u  p#nU R                  SX1S   5        U R                  SX!S   5        U R                  USUS   5        g )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_version"WmiTests.test_wmi_query_os_version   s    FGMMdSCF#Q4>>#&qbA$'At, 	NAaD1    c                 H    [        S5       H  nU R                  5         M     g N
   )ranger&   r!   r   s     r   test_wmi_query_repeated WmiTests.test_wmi_query_repeated'   s    rA**, r(   c                      [        S5        U R                  S5        g ! [         a"  nUR                  S-  S:X  a   S nAg  S nAN9S nAff = f)Nz.SELECT InvalidColumnName FROM InvalidTableNamel    l     zExpected OSError)r   OSErrorr   fail)r!   exs     r   test_wmi_query_errorWmiTests.test_wmi_query_error,   sJ    	KL
 			$%	  	{{Z':5 6	s    
AAAc                 H    [        S5       H  nU R                  5         M     g r*   )r,   r4   r-   s     r   test_wmi_query_repeated_error&WmiTests.test_wmi_query_repeated_error6   s    rA%%' r(   c                 x    U R                  [        5         [        S5        S S S 5        g ! , (       d  f       g = f)Nz0not select, just in case someone tries something)assertRaises
ValueErrorr   )r!   s    r   test_wmi_query_not_select"WmiTests.test_wmi_query_not_select:   s%    z*MN +**s   +
9cpuc                     [        S5       H,  nU R                  [        5         [        S5        S S S 5        M.     g ! , (       d  f       M@  = f)N   zSELECT * FROM CIM_DataFile)r,   r:   r1   r   r-   s     r   test_wmi_query_overflow WmiTests.test_wmi_query_overflow?   s8     qA""7+;< ,+ ++s	   =
A	c                 d   [        S5      nU R                  UR                  S5      U5        U R                  UR                  S5      U5        [	        UR                  S5      5      n  U R                  [        U5      S5        U R                  S[        U5      5        M8  ! [         a     g f = f)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_rows%WmiTests.test_wmi_query_multiple_rowsG   s    WXd+Q/D)1-!''$- 	  b+;<  T"X.   		s   )9B" "
B/.B/c                    SSK Jn  SnU" S5       n[        S5       Vs/ s H  oCR                  [        U5      PM     nnU H#  nU R                  UR                  5       S5        M%     S S S 5        g s  snf ! , (       d  f       g = f)Nr   )ThreadPoolExecutorrD          z
ProcessId=)concurrent.futuresrP   r,   submitr   r    result)r!   rP   r   poolr   taskts          r   test_wmi_query_threadsWmiTests.test_wmi_query_threadsT   si    9L"d@Eb	J	1KK6	DJ  \:  #"J #"s   A7A2+A72A77
B N)__name__
__module____qualname____firstlineno__r&   r.   r4   r7   r<   r   requires_resourcerA   rM   rY   __static_attributes__r[   r(   r   r   r      sE    2-
&(O
 u%= &=;r(   r   )timeunittesttestr   test.supportr   import_moduler   r   TestCaser   r[   r(   r   <module>rh      s@       & ""6w?
>;x   >;r(   