
    %
i                        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 d dl	m
Z
 d dlmZ d dlmZmZ de j        v Z G d de
j                  Z G d	 d
ej                  Z G d d          Z ej        d          Z G d dej                  ZdZdZdZej        dej        dej         dej!        dej"        dej#        diZ$d Z% G d dej&        j        j'                  Z(e)dk    r ej*                     dS dS )    N)axscript)axsite)Dispatch)connectutilz-vc                       e Zd Zd Zd ZdS )MySitec                 B    d | _         t          j        j        | g|R   d S N)exception_seenr   AXSite__init__)selfargss     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/axscript/test/testHost.pyr   zMySite.__init__   s+    "t+d++++++    c                    |                                 x| _        }|                                \  }}}t          sd S t	          d|d                    	 |                                }n# t          j        $ r d }Y nw xY w|d}|dz   d|dz
  z  z   dz   dz   |d         z   }|                                D ]}t	          d|z              d S )	Nz >Exception:    
 ^   z  >)	GetExceptionInfor   GetSourcePositionverboseprintGetSourceLineText	pythoncom	com_error
splitlines)r   errorexccontextlinecharsttexts           r   OnScriptErrorzMySite.OnScriptError   s    $)$:$:$<$<<c#5577t 	Fnc!f%%%	((**BB" 	 	 	BBB	:BDyC4!8,-3d:SVCOO%% 	  	 D%$,	  	 s   A) )A=<A=N)__name__
__module____qualname__r   r)    r   r   r	   r	      s2        , , ,         r   r	   c                       e Zd Zd ZdS )MyCollectionc                 @    t           j                            |           S r   )r   
Collection_NewEnumr   s    r   r2   zMyCollection._NewEnum'   s    ''---r   N)r*   r+   r,   r2   r-   r   r   r/   r/   &   s#        . . . . .r   r/   c                   .    e Zd ZddgZdgZd Zd Zd ZdS )Testechofail
collectionc                     t           | _         t          j        t          g d                    | _        d| _        d| _        d S )N)r   Two   r   r   )r   r   wrapr/   r8   lastfail_calledr3   s    r   r   zTest.__init__/   s;    )L$?$?@@	r   c                     d                     d |D                       | _        | j        r&|D ]}t          |d           t                       d S d S )Nr   c                 ,    g | ]}t          |          S r-   )str).0ss     r   
<listcomp>zTest.echo.<locals>.<listcomp>8   s    222SVV222r   r   end)joinr=   r   r   r   r   args      r   r6   z	Test.echo7   sj    GG22T22233	< 	 $ $cs#####GGGGG	 	r   c                 z    t          d           |D ]}t          |d           t                       d| _        d S )Nz**** fail() called ***r   rE   r   )r   r>   rH   s      r   r7   z	Test.fail>   sM    &''' 	  	 C#3r   N)r*   r+   r,   _public_methods__public_attrs_r   r6   r7   r-   r   r   r5   r5   +   sS        '"^N        r   r5   z&{8EB72F90-0D44-11d1-9C4B-00AA00125A98}c                   &    e Zd ZegZd Zd Zd ZdS )TestConnectServerc                     || _         d S r   )object)r   rP   s     r   r   zTestConnectServer.__init__T   s    r   c                 >    |                      | j        |f           d S r   )_BroadcastNotifyNotifyDoneIt)r   rI   s     r   	BroadcastzTestConnectServer.BroadcastW   s#    d/#88888r   c                 L    |                     ddt          j        d|           d S )Ni  r   r   )Invoker   DISPATCH_METHOD)r   	interfacerI   s      r   rS   zTestConnectServer.NotifyDoneIt[   s'    q)";QDDDDDr   N)r*   r+   r,   IID_ITestEvents_connect_interfaces_r   rT   rS   r-   r   r   rN   rN   O   sO        +,  9 9 9E E E E Er   rN   a  prop = "Property Value"

sub hello(arg1)
   test.echo arg1
end sub

sub testcollection
   if test.collection.Item(0) <> 1 then
     test.fail("Index 0 was wrong")
   end if
   if test.collection.Item(1) <> "Two" then
     test.fail("Index 1 was wrong")
   end if
   if test.collection.Item(2) <> 3 then
     test.fail("Index 2 was wrong")
   end if
   num = 0
   for each item in test.collection
     num = num + 1
   next
   if num <> 3 then
     test.fail("Collection didn't have 3 items")
   end if
end sub
u  # A unicode ©omment.
prop = "Property Value"
def hello(arg1):
   test.echo(arg1)

def testcollection():
#   test.collection[1] = "New one"
   got = []
   for item in test.collection:
     got.append(item)
   if got != [1, "Two", 3]:
     test.fail("Didn't get the collection")
   pass
zbad code for everyone!
SCRIPTSTATE_UNINITIALIZEDSCRIPTSTATE_INITIALIZEDSCRIPTSTATE_STARTEDSCRIPTSTATE_CONNECTEDSCRIPTSTATE_DISCONNECTEDSCRIPTSTATE_CLOSEDc                    | j         j                                        }||k    rht                              |t          |                    }t                              |t          |                    }t          d| d| d|           d S )NzWarning - engine z has state z, but expected )engineeScriptGetScriptState	state_mapgetrA   RuntimeError)rb   namestategotgot_name
state_names         r   _CheckEngineStaterm      s    
-

.
.
0
0C
e||==c#hh//]]5#e**55
VVVVV*VV
 
 	
 |r   c                   .    e Zd ZddZd Zd Zd Zd ZdS )EngineTesterNc           	          t                      }dt          j        |          i}t          |          }|                    |          }	 t          ||t          j                   |                    |           |	                                 t          ||t          j
                   |                     |j         d           t          |                                          }	 |                    d           |                     |d u d|d           n# t           j        $ rp ||                     d|j                    ||j        d         vr&|                     d|d	|j        d                    Y |                                 d }d }d S w xY w|                     |j        d           |                     t/          |j                  d
           |                                 |                     |j         d           |j                            dd d d ddt          j                  }	|                     |	d           |                    t          j                   t          ||t          j                   |	                                 t          ||t          j
                   |                    t          j                   t          ||t          j                   |                    t          j                   t          ||t          j                   |                    t          j                   t          ||t          j                   |                    t          j                   t          ||t          j                   |                    t          j                   t          ||t          j                   |                                 d }d }d S # |                                 d }d }w xY w)Ntestz Fail should not have been calledGooberz	Expected z, but no exception seenz%Unexpected failure from script code: r   zCould not find z in zProperty Valuez1+1r   ) r5   r   r<   r	   
_AddEnginerm   r   r\   AddCodeStartr]   
assertTruer>   r   GetScriptDispatchhellor   r    r7   r   CloseassertEqualr=   rA   proptestcollectioneParseParseScriptTextSCRIPTTEXT_ISEXPRESSIONSetScriptStater^   r_   )
r   
engineNamecodeexpected_excechoermodelsiterb   obresults
             r   _TestEnginezEngineTester._TestEngine   s   DIf%%
 e}},,8	dJ0PQQQNN4   LLNNNdJ0LMMMOO 224VWWW&224455B""" D(GGGG    & 	 	 	'IIU@SUU    t':1'===IIX,XXd>QRS>TXX   > LLNNNFDDDU	 V[(333S\\+;<<<OO 224VWWW ]22tT4Ax/O F VQ'''!!("BCCCdJ0PQQQLLNNNdJ0LMMM !!("BCCCdJ0PQQQ!!("@AAAdJ0NOOO!!("BCCCdJ0PQQQ!!("@AAAdJ0NOOO!!("CDDDdJ0QRRRLLNNNFDDD LLNNNFDKKKKs3   
BO3 '1D O3 A#F<O3 FIO3 3Pc                 <    |                      dt                     d S NVBScript)r   r   r3   s    r   testVBzEngineTester.testVB   s    X.....r   c                 <    |                      dt                     d S NPythonr   PyScriptr3   s    r   
testPythonzEngineTester.testPython       8,,,,,r   c                 <    |                      dt                     d S r   r   r3   s    r   testPythonUnicodeErrorz#EngineTester.testPythonUnicodeError   r   r   c                 ^    |                      t          j        | j        dt                     d S r   )assertRaisesr   r    r   	ErrScriptr3   s    r   testVBExceptionszEngineTester.testVBExceptions   s(    )-t/?YWWWWWr   r   )r*   r+   r,   r   r   r   r   r   r-   r   r   ro   ro      sj        ? ? ? ?B/ / /- - -- - -X X X X Xr   ro   __main__)+sysunittestr   
pywintypeswin32com.server.policywin32comwin32com.test.utilwin32com.axscriptr   win32com.axscript.serverr   win32com.client.dynamicr   win32com.serverr   r   argvr   r   r	   r1   r/   r5   IIDrY   ConnectableServerrN   r   r   r   r[   r\   r]   r^   r_   r`   re   rm   rq   TestCasero   r*   mainr-   r   r   <module>r      s7   



                  & & & & & & + + + + + + , , , , , , ) ) ) ) ) ) ) )
#(
         V]      ,. . . . .4? . . .
       B !*.!IJJE E E E E1 E E E 4 	
 &(C$&? "7"$;%'A!5	
 
 
LX LX LX LX LX8=%. LX LX LX^ zHMOOOOO r   