
    7bh>                         d dl Z d dlZd dlmZ d dlmZ  ej                  ddg      Zd Z G d d	ej                        Z
y)
    N)support)import_helper_wmiwin)required_onc                     t        j                  t         j                        D ]  }	 t        j	                  |       c S  y # t
        $ r Y (t        $ r}|j                  dk7  r Y d }~Ed }~ww xY w)Ni  )r   sleeping_retryLONG_TIMEOUTr   
exec_queryBrokenPipeErrorWindowsErrorwinerror)query_excs      7/opt/python-3.12.12/usr/lib/python3.12/test/test_wmi.pywmi_exec_queryr      sb    ##G$8$89	??5)) :  	 	||s" #	s   A	A.A.A))A.c                   f    e Zd Zd Zd Zd Zd Zd Z ej                  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    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*   r1   r+   s     r   test_wmi_query_repeated_errorz&WmiTests.test_wmi_query_repeated_error6   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_select:   s%    z*MN +**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*   r5   r.   r   r+   s     r   test_wmi_query_overflowz WmiTests.test_wmi_query_overflow?   s8     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_rowsG   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.futuresrH   r*   submitr   r   result)r    rH   r   poolr   taskts          r   test_wmi_query_threadszWmiTests.test_wmi_query_threadsT   sk    9L"d@Eb	J	1DKK6	DJ  \:  #"J #"s   A4A/)A4/A44A=N)__name__
__module____qualname__r%   r,   r1   r3   r7   r   requires_resourcer;   rF   rQ    r&   r   r   r      sG    2-
&(O
 Wu%= &=;r&   r   )timeunittesttestr   test.supportr   import_moduler   r   TestCaser   rV   r&   r   <module>r]      sB       & #}""6w?
>;x   >;r&   