§
    Ìtºf†  ã                   ó@  — d dl Z e j                             dd¦  «        r~d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  G d	„ d
ej        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ dej        ¦  «        ZdS dS )é    NÚUSE_TWISTEDF)Úsleep)Úwamp)Úunittest)Údefer)Úservicec                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚCaseComponentzÝ
        Application code goes here. This is an example component that calls
        a remote procedure on a WAMP peer, subscribes to a topic to receive
        events, and then stops the world after some events.
        c                 ó”   — t           j                             | |¦  «         |j        d         | _        d| _        d| _        d| _        d S )NÚtestFé   )r   ÚApplicationSessionÚ__init__Úextrar   ÚstopÚ_loglineÚfinished)ÚselfÚconfigs     úe/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/wamp/test/test_wamp_component.pyr   zCaseComponent.__init__,   sB   € ÝÔ#×,Ò,¨T°6Ñ:Ô:Ð:Øœ VÔ,ˆDŒIØˆDŒIØˆDŒMØ!ˆDŒMˆMˆMó    c                 ó2  — t          |¦  «        dk    r d                     d„ |D ¦   «         ¦  «        }nt          |¦  «        dk    r	|d         }nd}d                     | j        | j        j        |¦  «        }| xj        dz  c_        t          |¦  «         d S )Nr   z, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Ústr)Ú.0Úss     r   ú	<genexpr>z$CaseComponent.log.<locals>.<genexpr>5   s(   è è € Ð!7Ð!7¨Q¥# a¡&¤&Ð!7Ð!7Ð!7Ð!7Ð!7Ð!7r   r   ú-z= : {0:>3} : {1:<20} : {2})ÚlenÚjoinÚformatr   Ú	__class__Ú__name__Úprint)r   ÚargsÚsargsÚmsgs       r   ÚlogzCaseComponent.log3   s�   € Ý�4‰yŒy˜1Š}ˆ}ØŸ	š	Ð!7Ð!7°$Ð!7Ñ!7Ô!7Ñ7Ô7��Ý�T‘”˜a’�Ø˜Qœ��à�à.×5Ò5°d´mÀTÄ^ÔE\Ð^cÑdÔdˆCØˆMŒM˜QÑˆMŒMÝ�#‰JŒJˆJˆJˆJr   c                 ó‚   — | j         s(| j        j                             d ¦  «         d| _         d S t	          d¦  «         d S )NTzalready finished)r   r   ÚdeferredÚcallbackr%   ©r   s    r   ÚfinishzCaseComponent.finish?   sE   € Ø”=ð *Ø”	Ô"×+Ò+¨DÑ1Ô1Ð1Ø $�”��åÐ(Ñ)Ô)Ð)Ð)Ð)r   N)r$   Ú
__module__Ú__qualname__Ú__doc__r   r)   r.   © r   r   r
   r
   %   sK   € € € € € ð	ð 	ð	"ð 	"ð 	"ð
	ð 
	ð 
	ð	*ð 	*ð 	*ð 	*ð 	*r   r
   c                   ó.   — e Zd Zej        d„ ¦   «         ZdS )ÚCase1_Backendc              #   óÂ   ‡ K  — ‰                       d¦  «         ˆ fd„}‰                      |d¦  «        V — ‰                       d¦  «         ‰                      ¦   «          d S )NÚjoinedc                 ó`   •— ‰                      d                     | |¦  «        ¦  «         | |z   S )Nzadd2 invoked: {0}, {1}©r)   r"   )ÚxÚyr   s     €r   Úadd2z"Case1_Backend.onJoin.<locals>.add2M   s/   ø€ Ø—’Ð1×8Ò8¸¸AÑ>Ô>Ñ?Ô?Ð?Ø˜1‘u�r   úcom.mathservice.add2zadd2 registered)r)   Úregisterr.   )r   Údetailsr;   s   `  r   ÚonJoinzCase1_Backend.onJoinH   su   øè è € ð �HŠH�XÑÔÐðð ð ð ð ð —-’- Ð&<Ñ=Ô=Ð=Ð=Ð=Ø�HŠHÐ&Ñ'Ô'Ð'à�KŠK‰MŒMˆMˆMˆMr   N©r$   r/   r0   r   ÚinlineCallbacksr?   r2   r   r   r4   r4   F   ó1   € € € € € à	Ô	ð	ð 	ñ 
Ô	ð	ð 	ð 	r   r4   c                   ó.   — e Zd Zej        d„ ¦   «         ZdS )ÚCase1_Frontendc              #   ó`  K  — |                       d¦  «         	 |                      ddd¦  «        V —}|                       d                     |¦  «        ¦  «         n?# t          $ r2}|                       d                     |¦  «        ¦  «         Y d }~nd }~ww xY w|                      ¦   «          d S )Nr6   r<   é   é   zcall result: {0}zcall error: {0})r)   Úcallr"   Ú	Exceptionr.   )r   r>   ÚresÚes       r   r?   zCase1_Frontend.onJoinX   sÅ   è è € ð �HŠH�XÑÔÐð9Ø ŸIšIÐ&<¸aÀÑCÔCÐCÐC�ð —’Ð+×2Ò2°3Ñ7Ô7Ñ8Ô8Ð8Ð8øõ ð 6ð 6ð 6Ø—’Ð*×1Ò1°!Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5øøøøð6øøøð
 �KŠK‰MŒMˆMˆMˆMs   ™A Á
BÁ%(BÂBNr@   r2   r   r   rD   rD   V   rB   r   rD   c                   ó.   — e Zd Zej        d„ ¦   «         ZdS )ÚCase2_Backendc              #   ó†  ‡ K  — ‰                       d¦  «         ˆ fd„}ˆ fd„}dˆ fd„	}dˆ fd„	}ˆ fd	„}‰                      |d
¦  «        V — ‰                      |d¦  «        V — ‰                      |d¦  «        V — ‰                      |d¦  «        V — ‰                      |d¦  «        V — ‰                       d¦  «         d S )Nr6   c                  ó2   •— ‰                       d¦  «         d S )Nzping() is invoked©r)   r-   s   €r   Úpingz"Case2_Backend.onJoin.<locals>.pingm   s   ø€ Ø—’Ð,Ñ-Ô-Ð-Ø�r   c                 ó<   •— ‰                      d| |¦  «         | |z   S )Nzadd2() is invokedrP   )ÚaÚbr   s     €r   r;   z"Case2_Backend.onJoin.<locals>.add2q   s#   ø€ Ø—’Ð,¨a°Ñ3Ô3Ð3Ø˜1‘u�r   Úsomebodyr   c                 ó^   •— ‰                      d| |¦  «         d                     | |¦  «        S )Nzstars() is invokedz{0} starred {1}xr8   )ÚnickÚstarsr   s     €r   rX   z#Case2_Backend.onJoin.<locals>.starsu   s0   ø€ Ø—’Ð-¨t°UÑ;Ô;Ð;Ø)×0Ò0°°uÑ=Ô=Ð=r   é   c                 ót   •— ‰                      d| |¦  «         d„ t          d¦  «        D ¦   «         d |…         S )Nzorders() is invokedc                 ó8   — g | ]}d                       |¦  «        ‘ŒS )zProduct {0})r"   )r   Úis     r   ú
<listcomp>z8Case2_Backend.onJoin.<locals>.orders.<locals>.<listcomp>{   s&   € ÐCÐCÐC°A˜×,Ò,¨QÑ/Ô/ÐCÐCÐCr   é2   )r)   Úrange)ÚproductÚlimitr   s     €r   Úordersz$Case2_Backend.onJoin.<locals>.ordersy   s=   ø€ Ø—’Ð.°¸Ñ?Ô?Ð?ØCÐC½¸r¹¼ÐCÑCÔCÀFÀUÀFÔKÐKr   c                  ón   •— ‰                      d| |¦  «         t          | ¦  «        t          |¦  «        gS )Nzarglen() is invoked)r)   r    )r&   Úkwargsr   s     €r   Úarglenz$Case2_Backend.onJoin.<locals>.arglen}   s1   ø€ Ø—’Ð.°°fÑ=Ô=Ð=Ý˜D™	œ	¥3 v¡;¤;Ð/Ð/r   úcom.arguments.pingúcom.arguments.add2úcom.arguments.starsúcom.arguments.ordersúcom.arguments.arglenzprocedures registered)rU   r   )rY   )r)   r=   )r   r>   rQ   r;   rX   rb   re   s   `      r   r?   zCase2_Backend.onJoinh   sJ  øè è € ð �HŠH�XÑÔÐðð ð ð ð ðð ð ð ð ð>ð >ð >ð >ð >ð >ðLð Lð Lð Lð Lð Lð0ð 0ð 0ð 0ð 0ð —-’- Ð&:Ñ;Ô;Ð;Ð;Ð;Ø—-’- Ð&:Ñ;Ô;Ð;Ð;Ð;Ø—-’- Ð'<Ñ=Ô=Ð=Ð=Ð=Ø—-’- Ð(>Ñ?Ô?Ð?Ð?Ð?Ø—-’- Ð(>Ñ?Ô?Ð?Ð?Ð?à�HŠHÐ,Ñ-Ô-Ð-Ð-Ð-r   Nr@   r2   r   r   rM   rM   f   s1   € € € € € à	Ô	ð	.ð 	.ñ 
Ô	ð	.ð 	.ð 	.r   rM   c                   ó.   — e Zd Zej        d„ ¦   «         ZdS )ÚCase2_Frontendc           	   #   ó   K  — |                       d¦  «         t          d¦  «        V — |                      d¦  «        V — |                       d¦  «         |                      ddd¦  «        V —}|                       d                     |¦  «        ¦  «         |                      d	¦  «        V —}|                       d
                     |¦  «        ¦  «         |                      d	d¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                      d	d¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                      d	dd¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                      dd¦  «        V —}|                       d                     |¦  «        ¦  «         |                      ddd¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                      d¦  «        V —}|                       d                     |¦  «        ¦  «         |                      dddd¦  «        V —}|                       d                     |¦  «        ¦  «         |                      dddd¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                      ddddddd¬¦  «        V —}|                       d                     |¦  «        ¦  «         |                       d¦  «         |                      ¦   «          d S )Nr6   r   rf   zPinged!rg   rF   rG   z	Add2: {0}rh   zStarred 1: {0}ÚHomer)rW   zStarred 2: {0}rY   )rX   zStarred 3: {0})rW   rX   zStarred 4: {0}ri   ÚcoffeezOrders 1: {0}é
   )ra   zOrders 2: {0}rj   zArglen 1: {0})rS   rT   ÚczArglen 2: {0}zArglen 3: {0}Ú	finishing)r)   r   rH   r"   r.   )r   r>   rJ   Ústarredrb   Ú
arglengthss         r   r?   zCase2_Frontend.onJoin‹   s  è è € ð �HŠH�XÑÔÐå˜‘(”(ˆNˆNˆNà—)’)Ð0Ñ1Ô1Ð1Ð1Ð1Ø�HŠH�YÑÔÐàŸ	š	Ð"6¸¸1Ñ=Ô=Ð=Ð=ˆCØ�HŠH�[×'Ò'¨Ñ,Ô,Ñ-Ô-Ð-à ŸIšIÐ&;Ñ<Ô<Ð<Ð<ˆGØ�HŠHÐ%×,Ò,¨WÑ5Ô5Ñ6Ô6Ð6à ŸIšIÐ&;À'˜IÑJÔJÐJÐJˆGØ�HŠHÐ%×,Ò,¨WÑ5Ô5Ñ6Ô6Ð6à ŸIšIÐ&;À1˜IÑEÔEÐEÐEˆGØ�HŠHÐ%×,Ò,¨WÑ5Ô5Ñ6Ô6Ð6à ŸIšIÐ&;À'ÐQR˜IÑSÔSÐSÐSˆGØ�HŠHÐ%×,Ò,¨WÑ5Ô5Ñ6Ô6Ð6àŸ9š9Ð%;¸XÑFÔFÐFÐFˆFØ�HŠH�_×+Ò+¨FÑ3Ô3Ñ4Ô4Ð4àŸ9š9Ð%;¸XÈR˜9ÑPÔPÐPÐPˆFØ�HŠH�_×+Ò+¨FÑ3Ô3Ñ4Ô4Ð4à#ŸyšyÐ)?Ñ@Ô@Ð@Ð@ˆJØ�HŠH�_×+Ò+¨JÑ7Ô7Ñ8Ô8Ð8à#ŸyšyÐ)?ÀÀAÀqÑIÔIÐIÐIˆJØ�HŠH�_×+Ò+¨JÑ7Ô7Ñ8Ô8Ð8à#ŸyšyÐ)?À1ÈÈQ˜yÑOÔOÐOÐOˆJØ�HŠH�_×+Ò+¨JÑ7Ô7Ñ8Ô8Ð8à#ŸyšyÐ)?ÀÀAÀqÈAÐQRÐVW˜yÑXÔXÐXÐXˆJØ�HŠH�_×+Ò+¨JÑ7Ô7Ñ8Ô8Ð8à�HŠH�[Ñ!Ô!Ð!à�KŠK‰MŒMˆMˆMˆMr   Nr@   r2   r   r   rl   rl   ‰   s1   € € € € € à	Ô	ð,	ð ,	ñ 
Ô	ð,	ð ,	ð ,	r   rl   c                   ó¬   — e Zd Zej                             d¦  «        €dZd„ Zej	        d„ ¦   «         Z
ej	        d„ ¦   «         Zej	        d„ ¦   «         ZdS )ÚTestRpcÚWAMP_ROUTER_URLNz`Please provide WAMP_ROUTER_URL environment with url to WAMP router to run WAMP integration testsc                 ó\   — t           j                             d¦  «        | _        d| _        d S )Nrw   Úrealm1)ÚosÚenvironÚgetÚurlÚrealmr-   s    r   ÚsetUpzTestRpc.setUpÀ   s#   € Ý”z—~’~Ð&7Ñ8Ô8ˆDŒHØ!ˆDŒJˆJˆJr   c              #   óV  K  — t          j        ¦   «         | _        t          j        ¦   «         }|D ]G}t          j        | j        t          | ¬¦  «        | j	        |¬¦  «        }| 
                    |¦  «         ŒH|                     ¦   «          | j        V — |                     ¦   «          d S )N)r   )r}   r   r~   Úmake)r   ÚDeferredr+   r   ÚMultiServicer   ÚServicer}   Údictr~   ÚsetServiceParentÚstartServiceÚstopService)r   Ú
componentsÚappÚ	componentrq   s        r   Ú
runOneTestzTestRpc.runOneTestÄ   s¯   è è € å!œNÑ,Ô,ˆDŒMÝÔ&Ñ(Ô(ˆCØ'ð (ð (�	Ý”LØœÝ D˜/™/œ/Øœ*Ø"ð	ñ ô �ð ×"Ò" 3Ñ'Ô'Ð'Ð'à×ÒÑÔÐØ”-ÐÐÐØ�OŠOÑÔÐÐÐr   c              #   óP   K  — |                       t          t          g¦  «        V — d S r   )rŒ   r4   rD   r-   s    r   Ú
test_case1zTestRpc.test_case1Õ   ó)   è è € à—/’/¥=µ.Ð"AÑBÔBÐBÐBÐBÐBÐBr   c              #   óP   K  — |                       t          t          g¦  «        V — d S r   )rŒ   rM   rl   r-   s    r   Ú
test_case2zTestRpc.test_case2Ù   r�   r   )r$   r/   r0   rz   r{   r|   Úskipr   r   rA   rŒ   rŽ   r‘   r2   r   r   rv   rv   º   s¥   € € € € € àŒ:�>Š>Ð+Ñ,Ô,Ð4ð@ˆDð	"ð 	"ð 	"ð 
Ô	ð	ð 	ñ 
Ô	ð	ð  
Ô	ð	Cð 	Cñ 
Ô	ð	Cð 
Ô	ð	Cð 	Cñ 
Ô	ð	Cð 	Cð 	Cr   rv   )rz   r{   r|   Úautobahn.twisted.utilr   Úautobahn.twistedr   Útwisted.trialr   Útwisted.internetr   Útwisted.applicationr   r   r
   r4   rD   rM   rl   ÚTestCaserv   r2   r   r   ú<module>r™      s¬  ðð6 
€	€	€	à„:‡>‚>�- Ñ'Ô'ð ~CØ+Ð+Ð+Ð+Ð+Ð+Ø%Ð%Ð%Ð%Ð%Ð%à&Ð&Ð&Ð&Ð&Ð&Ø&Ð&Ð&Ð&Ð&Ð&Ø+Ð+Ð+Ð+Ð+Ð+ð*ð *ð *ð *ð *˜Ô/ñ *ô *ð *ðBð ð ð ð ˜ñ ô ð ð ð ð ð ð ˜ñ ô ð ð !.ð !.ð !.ð !.ð !.˜ñ !.ô !.ð !.ðF/ð /ð /ð /ð /˜ñ /ô /ð /ðb!Cð !Cð !Cð !Cð !C�(Ô#ñ !Cô !Cð !Cð !Cð !Cð{~Cð ~Cr   