
    %
i                      L   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
Z
d dlZd dlmZmZ d ZddZ	 	 ddZd Z G d d          Z G d	 d
e j                  Zdad Zd Zej        Zd Z G d dej                  Z G d dej                  Zd ZdS )    N)_GetGatewayCount_GetInterfaceCountc                      t                      } | rt          d| z             t                      } | rt          d| z             d S d S )Nz.Warning - %d com interface objects still alivez,Warning - %d com gateway objects still alive)r   printr   )cs    C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32com/test/util.py
CheckCleanr	      sf     	A D>BCCCA B<q@AAAAAB B    c                 :   |r"t          |t                    r|g}d }|D ]}	 t          j        |          }n# t          j        $ r Y  nw xY w	 t          j        }t          j        |d|z            }t          j	        |d          }n# t          $ r Y  nw xY wt          j                            t          j                  dt          j        j        t          j        j        fz  g}	t          j                            |          |	vrd                    ||          } nd S 	 ddlm}
 	  |
            }n8# t          j        $ r d}Y n%w xY w# t,          $ r t/          d           d	}Y nw xY w|s6d
|d         z  }|r|d|z  z  }t	          j        t0          j        |d d          t5          j        d           d|  d}|rt/          d|            t          j        |          }|r0t/          d           t/          |           t;          d| z            d S )NzCLSID\%sInprocServer32zpythoncomloader%d%d.dllz:{!r} is registered against a different Python version ({})r   )IsUserAnAdminTzACan't import win32com.shell - no idea if you are an admin or not?FzF%r isn't registered, but I'm not an administrator who can register it.z"
(registration check failed as %s)z "z" --unattended > nul 2>&1zRegistering enginezRegistration command was:z"Registration of engine '%s' failed)
isinstancestr
pywintypesIID	pythoncom	com_errorwinregHKEY_CLASSES_ROOTOpenKey
QueryValueOSErrorospathbasename__file__sysversion_infomajorminorformatwin32com.shell.shellr   ImportErrorr   winerrorCO_E_CLASSSTRINGwin32apiGetModuleFileNamesystemRuntimeError)filenameprogidsverbosewhy_notprogidclsidHKCRhkdllok_filesr   is_adminmsgcmdrcs                  r   RegisterPythonServerr9      s    #gs## 	 iG  	 	F"v..&   /^D+*=>>',<==      !344)#)3+;+ABCH
 w$$H44PWW    5 F
666666
	$}HH" 	 	 	HHH	    QRRR  	LTaj 	  	C87BBC !(";S$KKK'**
Q
Qh
Q
Q
QC ."H---	3B	 L)***c


?(JKKKL LsE   9AA9B


BB'E .
D9 9EEE.-E.c                    t          j        d          }| d|z  z  } t          j        |           }t	          |d                                                                          }t          j        |            G d dt                    }	 |r |dt          |          z             |||k    r |d|d|d	          |s$|
                    d
          dk    r |d          |S # |$ ru}t          d| z             t          d|           t          d           t          |           t          d           |                    d|  d|            Y d }~d S d }~ww xY w)Nwin32com_testz > "%s" 2>&1rc                       e Zd ZdS )#ExecuteShellCommand.<locals>.FailedN)__name__
__module____qualname__ r
   r   Failedr>   o   s        r
   rC   zexit code was zExpected output z (got )z!Traceback (most recent call last)r   ztraceback in program outputzFailed to exec command '%r'z	Failed asz** start of program output **z** end of program output **zExecuting 'z' failed as )tempfilemktempr   r)   openreadstripremove	Exceptionr   findr   fail)	r7   testcaseexpected_outputtracebacks_okoutput_namer8   outputrC   whys	            r   ExecuteShellCommandrT   c   s    //22K>K''C	3B+s##((**0022FIk       < 	5&)CGG3444&6_+D+D&POPPVPPPQQQ 	8-P!Q!QUV!V!V&6777 < < <+c1222k3-...f+,,,:C::S::;;;;;;;;;<s   AC, ,E&1A*E!!E&c                     	  ||i | n-# t           j        $ r}|j        |k    rY d }~d S Y d }~nd }~ww xY w|                     d|z             d S )Nz*Excepected COM exception with HRESULT 0x%x)r   r   hresultrM   )rN   rV   funcargskwdetailss         r   assertRaisesCOM_HRESULTr[      s    db   ?g%%FFFFF &%%%% MM>HIIIIIs    505c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	CaptureWriterc                 J    d x| _         | _        |                                  d S N)old_errold_outclearselfs    r   __init__zCaptureWriter.__init__   s!    &**t|

r
   c                     |                                   t          j        | _        t          j        | _        | xt          _        t          _        d S r_   )rb   r   stdoutra   stderrr`   rc   s    r   capturezCaptureWriter.capture   s3    

zz"&&
SZZZr
   c                     | j         r| j         t          _        d | _         | j        r| j        t          _        d | _        d S d S r_   )ra   r   rg   r`   rh   rc   s    r   releasezCaptureWriter.release   sD    < 	 CJDL< 	 CJDLLL	  	 r
   c                     g | _         d S r_   )capturedrc   s    r   rb   zCaptureWriter.clear   s    r
   c                 :    | j                             |           d S r_   )rm   append)rd   r6   s     r   writezCaptureWriter.write   s    S!!!!!r
   c                 6    d                     | j                  S )N )joinrm   rc   s    r   get_capturedzCaptureWriter.get_captured   s    wwt}%%%r
   c                 v    t          d                    | j                                      d                    S )Nrr   
)lenrs   rm   splitrc   s    r   get_num_lines_capturedz$CaptureWriter.get_num_lines_captured   s,    2774=))//55666r
   N)
r?   r@   rA   re   ri   rk   rb   rp   rt   ry   rB   r
   r   r]   r]      s}          ' ' '       " " "& & &7 7 7 7 7r
   r]   c                       e Zd Zd Zd ZdS )
LogHandlerc                 R    g | _         t          j                            |            d S r_   )emittedloggingHandlerre   rc   s    r   re   zLogHandler.__init__   s%      &&&&&r
   c                 :    | j                             |           d S r_   )r}   ro   )rd   records     r   emitzLogHandler.emit   s    F#####r
   N)r?   r@   rA   re   r   rB   r
   r   r{   r{      s2        ' ' '$ $ $ $ $r
   r{   c                     t          t          dd           } t          <t          j        d          at                      }t                              |           t          t          _        t          j        d         }g |_	        |j	        | fS )Nloggertestr   )
getattrwin32com_win32com_loggerr~   Loggerr{   
addHandlerr   handlersr}   )old_loghandlers     r   setup_test_loggerr      sn    h$//G">&11,,##G,,,&HO'*GGO?G##r
   c                 L    | 
J d            | 	t           `d S | t           _        d S )Nzwho needs this?)r   r   )prev_loggers    r   restore_test_loggerr      s1     1OOO%r
   c                  B    t          | i |}t          j        |          S r_   )_CapturingFunctionTestCasepywin32_testutilLeakTestCase)rX   rY   	real_tests      r   CapturingFunctionTestCaser      s%    *D7B77I(333r
   c                       e Zd ZddZd ZdS )r   Nc                    ||                                  }t                      }|                                 	 t          j                            | |           t          | dd          r*t          t          d          r| 	                    |           |
                                 n# |
                                 w xY w|                                }|                     ||           |j        rt          |           d S d S )Ndo_leak_testsr   gettotalrefcount)defaultTestResultr]   ri   unittestFunctionTestCase__call__r   hasattrr   run_leak_testsrk   rt   checkOutputshowAllr   )rd   resultwriterrR   s       r   r   z#_CapturingFunctionTestCase.__call__   s    >++--F	%..tV<<<t_a00 ,WSBT5U5U ,##F+++NNFNN$$&&(((> 	&MMMMM	 	s   AB* *C c                 ~    |                     d          dk    r#d|z  }|j                            | |f           d S d S )N	Tracebackr   z,Test output contained a traceback
---
%s
---)rL   errorsro   )rd   rR   r   r6   s       r   r   z&_CapturingFunctionTestCase.checkOutput   sK    ;;{##q((CfLCM  $----- )(r
   r_   )r?   r@   rA   r   r   rB   r
   r   r   r      s7           $. . . . .r
   r   c                        e Zd Zd Zd Zd ZdS )ShellTestCasec                 `    || _         || _        t          j                            |            d S r_   )_ShellTestCase__cmd_ShellTestCase__eor   TestCasere   )rd   r7   rO   s      r   re   zShellTestCase.__init__   s-    
#	""4(((((r
   c                 <    t          | j        | | j                   d S r_   )rT   r   r   rc   s    r   runTestzShellTestCase.runTest   s    DJdi88888r
   c                 t    d}t          | j                  |k    r| j        d |         dz   }n| j        }d|z   S )N   z...zexec: )rw   r   )rd   maxcmd_reprs      r   __str__zShellTestCase.__str__   sC    tz??S  z$3$'%/HHzH(""r
   N)r?   r@   rA   re   r   r   rB   r
   r   r   r      sA        ) ) )
9 9 9# # # # #r
   r   c                  D    t          j        | i | t                       d S r_   )r   testmainr	   )rX   rY   s     r   r   r     s%    t*r***LLLLLr
   )Nr   )r~   r   r   rE   r   r   r   r   r   r'   r   r%   r   r   r	   r9   rT   r[   r]   r   r{   r   r   r   r   r   r   r   r   r   rB   r
   r   <module>r      s    				 



                   : : : : : : : :B B BDL DL DL DLT 	< < < <@J J J7 7 7 7 7 7 7 7D$ $ $ $ $ $ $ $  $ $ $& & & 4 4 4
. . . . .!: . . .2# # # # #H% # # #$    r
   