a „oeüã@sòddlZddlZddlZddlmZddlmZddlm Z ddl m Z m Z Gdd„dej ƒZGdd „d e jƒZGd d „d ƒZe d ¡ZGd d„de jƒZdZejdkr®dZndZed7ZdZddd„Zdd„Zdd„Zdd„ZedkrîeƒdS) éN)Úaxscript)Úaxsite)Ú Exception)ÚconnectÚutilc@seZdZdd„ZdS)ÚMySitecCs˜| ¡}| ¡\}}}td|dƒz | ¡}WntjyHd}Yn0|durVd}|dd|ddd|d}| ¡D]}td|ƒq‚dS) Nz >Exception:éÚÚ ú ú^éz >)ZGetExceptionInfoZGetSourcePositionÚprintZGetSourceLineTextÚ pythoncomÚ com_errorÚ splitlines)ÚselfÚerrorÚexcÚcontextÚlineÚcharÚstÚtext©rúCC:\Program Files\Certbot\pkgs\win32comext\axscript\test\leakTest.pyÚ OnScriptError s  $ zMySite.OnScriptErrorN)Ú__name__Ú __module__Ú __qualname__rrrrrr src@seZdZdd„ZdS)Ú MyCollectioncCstdƒtj |¡S)NzMaking new Enumerator)rrÚ CollectionÚ_NewEnum©rrrrr"szMyCollection._NewEnumN)rrrr"rrrrr sr c@s*eZdZdgZddgZdd„Zdd„ZdS) ÚTestÚechoÚ collectionÚverbosecCs$d|_t tgd¢ƒ¡|_d|_dS)Nr)rZTwoér )r'rÚwrapr r&Úlastr#rrrÚ__init__%sz Test.__init__cGs8d tt|ƒ¡|_|jr4|D]}t|dd�qtƒdS)Nr r )Úend)ÚjoinÚmapÚstrr*r'r)rÚargsÚargrrrr%,s z Test.echoN)rrrZ_public_methods_Z_public_attrs_r+r%rrrrr$!sr$z&{8EB72F90-0D44-11d1-9C4B-00AA00125A98}c@s*eZdZegZdd„Zdd„Zdd„ZdS)ÚTestConnectServercCs ||_dS©N)Úobject)rr4rrrr+BszTestConnectServer.__init__cCs| |j|f¡dSr3)Z_BroadcastNotifyÚ NotifyDoneIt)rr1rrrÚ BroadcastEszTestConnectServer.BroadcastcCs| ddtjd|¡dS)Nièrr)ZInvokerZDISPATCH_METHOD)rZ interfacer1rrrr5IszTestConnectServer.NotifyDoneItN)rrrÚIID_ITestEventsZ_connect_interfaces_r+r6r5rrrrr2=sr2zËprop = "Property Value" sub hello(arg1) test.echo arg1 end sub sub testcollection test.verbose = 1 for each item in test.collection test.echo "Collection item is", item next end sub )r(z$print "PyScript is being parsed..." z%print("PyScript is being parsed...") zèprop = "Property Value" def hello(arg1): test.echo(arg1) pass def testcollection(): test.verbose = 1 # test.collection[1] = "New one" for item in test.collection: test.echo("Collection item is", item) pass zbad code for everyone! rcCs²tƒ}dt |¡i}t|ƒ}| |¡}| |tj¡z| ¡W|sl|  ¡dSn|sj|  ¡YdS0t ||ƒ|j   tj ¡|j  t |¡¡tdƒ| ¡|  ¡dS)NÚtestZ restarting)r$rr)rZ _AddEngineZAddCoderZSCRIPTTEXT_ISPERSISTENTZStartÚCloseÚ doTestEngineZeScriptZSetScriptStateZSCRIPTSTATE_UNINITIALIZEDZ SetScriptSiter)Z engineNameÚcodeZ bShouldWorkÚechoerZmodelZsiteÚenginerrrÚ TestEnginers( ÿ  þ r>c CsÊddlm}|| ¡ƒ}z| d¡Wn2tjyX}ztd|ƒWYd}~dSd}~00|jdkrttdt|jƒƒt |j ƒdkr’tdt|j ƒƒ|  ¡|j   ddddddtj¡}|d krÆtd |ƒdS) Nr)ÚDispatchZGooberz***** Calling 'hello' failedz-***** Function call didnt set value correctlyzProperty Valuez#***** Property Value not correct - z1+1r z5Engine could not evaluate '1+1' - said the result was)Zwin32com.client.dynamicr?ZGetScriptDispatchZhellorrrr*Úreprr/ZpropZtestcollectionZeParseZParseScriptTextrZSCRIPTTEXT_ISEXPRESSION)r=r<r?ÚobrÚresultrrrr:‹s"    ÿr:cCs(tdƒD]}tdtƒtt ¡ƒqdS)Né ÚPython)Úranger>ÚPyScriptrÚsysZgettotalrefcount)ÚirrrÚ dotestall¥s  rIcCs*tƒt ¡tdt ¡t ¡fƒdS)Nz>AXScript Host worked correctly - %d/%d COM objects left alive.)rIrZCoUninitializerZ_GetInterfaceCountZ_GetGatewayCountrrrrÚtestall²sÿÿrJÚ__main__)r)rGrZwin32com.server.policyZwin32comZwin32com.axscriptrZwin32com.axscript.serverrZwin32com.axscript.server.errorrZwin32com.serverrrZAXSiterr!r r$ZMakeIIDr7ZConnectableServerr2ZVBScriptÚ version_inforFZ ErrScriptr>r:rIrJrrrrrÚs.