§
    Ìtºf¨£  ã                   óþ  — d dl Z d dlmZ e j                             dd¦  «        r×d dlmZmZmZ d dlm	Z	m
Z
mZ d dlm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mZmZmZmZ d dlmZ d dlmZmZ d dlm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'  G d„ de(¦  «        Z) G d„ dej*        ¦  «        Z+ G d„ dej*        ¦  «        Z, G d„ dej*        ¦  «        Z- G d„ dej*        ¦  «        Z. G d„ dej*        ¦  «        Z/dS dS )é    NÚUSE_TWISTEDF)ÚinlineCallbacksÚDeferredÚreturnValue)ÚsucceedÚfailÚDeferredList)Úunittest)Úutil)ÚApplicationSession)ÚSession)ÚmessageÚroleÚ
serializerÚtypesÚuriÚCloseDetails)ÚCallRequest)ÚApplicationErrorÚNotAuthorized)Ú
InvalidUriÚProtocolError)Úcreate_authenticator)ÚIAuthenticator)ÚTransportDetailsc                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚMockTransportc                 óâ  — d| _         || _        t          j        ¦   «         | _        i | _        i | _        i | _        | j                             | ¦  «         t          j
        ¦   «         | _        t          j        ¦   «         t          j        ¦   «         dœ}t          j        | j        |¦  «        }| j                             |¦  «         t%          ¦   «         | _        t)          ¦   «         | _        d S )NF)ÚbrokerÚdealer)Ú_logÚ_handlerr   ÚJsonSerializerÚ_serializerÚ_registrationsÚ_invocationsÚ_subscription_topicsÚonOpenr   ÚidÚ_my_session_idr   ÚRoleBrokerFeaturesÚRoleDealerFeaturesr   ÚWelcomeÚ	onMessager   Ú_fake_router_sessionr   Ú_transport_details)ÚselfÚhandlerÚrolesÚmsgs       úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/autobahn/wamp/test/test_wamp_protocol.pyÚ__init__zMockTransport.__init__2   sÈ   € ØˆDŒIØ#ˆDŒMÝ)Ô8Ñ:Ô:ˆDÔØ"$ˆDÔØ "ˆDÔà(*ˆDÔ%àŒM× Ò  Ñ&Ô&Ð&å"&¤'¡)¤)ˆDÔå#Ô6Ñ8Ô8ÅDÔD[ÑD]ÔD]Ð^Ð^ˆEå”/ $Ô"5°uÑ=Ô=ˆCØŒM×#Ò# CÑ(Ô(Ð(Ý(:Ñ(<Ô(<ˆDÔ%å&6Ñ&8Ô&8ˆDÔ#Ð#Ð#ó    c                 ó   — | j         S ©N)r0   ©r1   s    r5   Útransport_detailszMockTransport.transport_detailsG   s   € ØÔ*Ð*r7   c                 ó`   — | j                              t          j        d|¦  «        ¦  «         d S )Nr   )r"   r.   r   ÚUnregistered)r1   Úreg_ids     r5   Údrop_registrationzMockTransport.drop_registrationJ   s6   € ØŒM×#Ò#ÝÔ$ Q¨Ñ/Ô/ñô ð ð ð r7   c                 ó:
  — | j         r?| j                             |¦  «        \  }}t          d                     |¦  «        ¦  «         d }t          |t          j        ¦  «        rå|j         	                    d¦  «        r?|j
        r6t          j        |j        | j        j                             ¦   «         ¦  «        }�nût!          |j        ¦  «        dk    r,t          j        t          j        j        |j        d¦  «        }�n·|j         	                    d¦  «        r�n›t          j        t          j        j        |j        d¦  «        }�not          |t          j        ¦  «        �rH|j        dk    rt          j        |j        dg¬	¦  «        }�n+|j        d
k    rt          j        |j        g d¢¬	¦  «        }�n|j        dk    r#t          j        |j        g d¢dddœ¬¦  «        }�nÓ|j         	                    d¦  «        r�| j        |j                 }| j        j                             ¦   «         }|| j        v rt1          d¦  «        ‚|j        | j        |<   t          j        |||j        |j        |j        ¬¦  «        }�n8t          j        t          j        j        |j        d¦  «        }�nt          |t          j        ¦  «        rI|j        | j        v r9| j        |j                 }t          j        ||j        |j        |j        ¬¦  «        }�n©t          |t          j        ¦  «        rb|j        }|| j         v r| j         |         }n(| j        j                             ¦   «         }|| j         |<   t          j!        |j        |¦  «        }�n-t          |t          j"        ¦  «        rt          j#        |j        ¦  «        }nùt          |t          j$        ¦  «        rH| j        j                             ¦   «         }|| j        |j        <   t          j%        |j        |¦  «        }n—t          |t          j&        ¦  «        rt          j'        |j        ¦  «        }nct          |t          j        ¦  «        rI| j        |j                 }t          j        t          j        j        ||j(        |j        |j        ¬¦  «        }|rb| j         r?| j                             |¦  «        \  }}t          d                     |¦  «        ¦  «         | j)         *                    |¦  «         d S d S )Nz	Send: {0}z	com.myappr   zwamp.error.invalid_uriznoreply.zwamp.error.not_authorizedúcom.myapp.procedure1éd   ©Úargsúcom.myapp.procedure2©é   é   é   úcom.myapp.procedure3Úbaré   ©ÚfooÚbaz©rD   Úkwargszcom.myapp.myproczduplicate invocation)rD   rQ   Úreceive_progresszwamp.error.no_such_procedure)rD   rQ   ÚprogresszReceive: {0})+r!   r$   Ú	serializeÚprintÚformatÚ
isinstancer   ÚPublishÚtopicÚ
startswithÚacknowledgeÚ	PublishedÚrequestr/   Ú_request_id_genÚnextÚlenÚErrorÚMESSAGE_TYPEÚCallÚ	procedureÚResultr%   r&   r   Ú
InvocationrD   rQ   rR   ÚYieldrS   Ú	Subscriber'   Ú
SubscribedÚUnsubscribeÚUnsubscribedÚRegisterÚ
RegisteredÚ
Unregisterr=   Úerrorr"   r.   )	r1   r4   ÚpayloadÚisbinaryÚreplyÚregistrationr]   rY   Úreply_ids	            r5   ÚsendzMockTransport.sendO   s–  € ØŒyð 3Ø$(Ô$4×$>Ò$>¸sÑ$CÔ$CÑ!�˜Ý�k×(Ò(¨Ñ1Ô1Ñ2Ô2Ð2àˆEå˜#�wœÑ/Ô/ð EØ”9×'Ò'¨Ñ4Ô4ð rØ”ð qÝ 'Ô 1°#´+¸tÔ?XÔ?h×?mÒ?mÑ?oÔ?oÑ pÔ p˜ùÝ˜œ‘^”^ qÒ(Ð(Ý#œM­'¬/Ô*FÈÌÐUmÑnÔn�E‘EØ”Y×)Ò)¨*Ñ5Ô5ð rÙå#œM­'¬/Ô*FÈÌÐUpÑqÔq�E‘Eå˜C¥¤Ñ.Ô.ñ :Ø”=Ð$:Ò:Ð:Ý#œN¨3¬;¸c¸UÐCÑCÔC�E‘EØ”]Ð&<Ò<Ð<Ý#œN¨3¬;¸Y¸Y¸YÐGÑGÔG�E‘EØ”]Ð&<Ò<Ð<Ý#œN¨3¬;¸Y¸Y¸YÐW\ÐegÐOhÐOhÐiÑiÔi�E‘Eà”]×-Ò-Ð.@ÑAÔAð rØ#'Ô#6°s´}Ô#E�LØ"Ô7ÔG×LÒLÑNÔN�GØ $Ô"3Ð3Ð3Ý+Ð,BÑCÔCÐCØ14´�DÔ% gÑ.Ý#Ô.Ø Ø œXØ"œzØ),Ô)=ð	ñ ô �E‘Eõ $œM­'¬,Ô*CÀSÄ[ÐRpÑqÔq�E‘Eå˜C¥¤Ñ/Ô/ð #Ø”; $Ô"3Ð3Ð3Ø"Ô/°´Ô<�GÝ#œN¨7¸¼È#Ì*Ð_bÔ_kÐlÑlÔl�Eùå˜C¥Ô!2Ñ3Ô3ð Øœ	�Ø˜DÔ5Ð5Ð5Ø#Ô8¸Ô?�H�Hà#Ô8ÔH×MÒMÑOÔO�HØ7?�DÔ-¨eÑ4ÝÔ*¨3¬;¸ÑAÔA�‘å˜C¥Ô!4Ñ5Ô5ð ÝÔ,¨S¬[Ñ9Ô9��å˜C¥Ô!1Ñ2Ô2ð Ø#Ô8ÔH×MÒMÑOÔO�Ø5A�Ô# C¤MÑ2ÝÔ*¨3¬;¸ÑEÔE��å˜C¥Ô!3Ñ4Ô4ð ÝÔ,¨S¬[Ñ9Ô9��å˜C¥¤Ñ/Ô/ð 
ð Ô+¨C¬KÔ8�ÝœÝ”LÔ-ØØ”IØœØœ:ðñ ô �ð ð /Ø”9ð :Ø(,Ô(8×(BÒ(BÀ5Ñ(IÔ(IÑ%�G˜XÝ˜.×/Ò/°Ñ8Ô8Ñ9Ô9Ð9Ø”×'Ò'¨Ñ.Ô.Ð.Ð.Ð.ð	/ð /r7   c                 ó   — dS ©NT© r:   s    r5   ÚisOpenzMockTransport.isOpen£   s   € Ø�4r7   c                 ó   — d S r9   rx   r:   s    r5   ÚclosezMockTransport.close¦   ó   € ØˆDr7   c                 ó   — d S r9   rx   r:   s    r5   ÚabortzMockTransport.abort©   r|   r7   N)
Ú__name__Ú
__module__Ú__qualname__r6   r;   r?   ru   ry   r{   r~   rx   r7   r5   r   r   0   s�   € € € € € ð	9ð 	9ð 	9ð*	+ð 	+ð 	+ð	ð 	ð 	ð
R	/ð R	/ð R	/ðh	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r7   r   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	TestClosec                 ój   — t          ¦   «         }t          |¦  «         |                     d¦  «         d S )NF)r   r   ÚonClose)r1   r2   s     r5   Útest_server_abortzTestClose.test_server_abort­   s5   € Ý(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð �OŠO˜EÑ"Ô"Ð"Ð"Ð"r7   c                 óì   — t          ¦   «         }t          |¦  «         t          t          ¦   «         ¦  «        }t	          dd|i ¦  «        |j        d<   |                     t          ¦   «         ¦  «         d S )NrG   rN   )r   r   r   Ú	Exceptionr   Ú
_call_reqsÚonLeaver   )r1   r2   Údeferreds      r5   Útest_reject_pendingzTestClose.test_reject_pendingµ   se   € Ý(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"õ �I™KœKÑ(Ô(ˆHÝ$/°°5¸(ÀBÑ$GÔ$GˆGÔ˜qÑ!Ø�OŠO�L™NœNÑ+Ô+Ð+Ð+Ð+r7   N)r   r€   r�   r†   rŒ   rx   r7   r5   rƒ   rƒ   ¬   s2   € € € € € ð	#ð 	#ð 	#ð	,ð 	,ð 	,ð 	,ð 	,r7   rƒ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRegisterDecoratorc                 óÖ  —  G d„ dt           ¦  «        } |¦   «         }t          j        ¦   «         |_        |                     |d¬¦  «         |                      dt          |j        j        ¦  «        ¦  «         |j        j        d         }|                      d|d         ¦  «         |                     ¦   «         d         d         d         }|                      d|j	        ¦  «         d S )	Nc                   ó@   — e Zd Z ej        d¦  «        d„ ¦   «         ZdS )ú1TestRegisterDecorator.test_prefix.<locals>.PrefixÚmethod_namec                 ó   — d S r9   rx   r:   s    r5   Úsome_methodz=TestRegisterDecorator.test_prefix.<locals>.Prefix.some_methodÄ   ó   € à�Dr7   N©r   r€   r�   r   Úregisterr”   rx   r7   r5   ÚPrefixr‘   Â   s:   € € € € € à�”˜mÑ,Ô,ðð ñ -Ô,ðð ð r7   r˜   zcom.example.prefix.©ÚprefixrG   r   ru   zcom.example.prefix.method_name©
r   ÚmockÚMockÚ
_transportr—   ÚassertEqualr`   Ú
mock_callsÚ	call_listrd   )r1   r˜   ÚsessionÚcallÚregs        r5   Útest_prefixz!TestRegisterDecorator.test_prefixÀ   sï   € ðð ð ð ð Õ+ñ ô ð ð
 �f‘h”hˆGå!%¤¡¤ˆGÔØ×Ò˜WÐ-BÐÑCÔCÐCð ×Ò˜Q¥ GÔ$6Ô$AÑ BÔ BÑCÔCÐCØÔ%Ô0°Ô3ˆDØ×Ò˜V T¨!¤WÑ-Ô-Ð-Ø—.’.Ñ"Ô" 1Ô% aÔ(¨Ô+ˆCØ×ÒÐ=¸s¼}ÑMÔMÐMÐMÐMr7   c                 óÖ  —  G d„ dt           ¦  «        } |¦   «         }t          j        ¦   «         |_        |                     |d¬¦  «         |                      dt          |j        j        ¦  «        ¦  «         |j        j        d         }|                      d|d         ¦  «         |                     ¦   «         d         d         d         }|                      d|j	        ¦  «         d S )	Nc                   ó@   — e Zd Z ej        d¦  «        d„ ¦   «         ZdS )ú3TestRegisterDecorator.test_auto_name.<locals>.MagicNc                 ó   — d S r9   rx   r:   s    r5   r”   z?TestRegisterDecorator.test_auto_name.<locals>.Magic.some_methodØ   r•   r7   r–   rx   r7   r5   ÚMagicr¨   Ö   s:   € € € € € à�”˜dÑ#Ô#ðð ñ $Ô#ðð ð r7   rª   zcom.example.r™   rG   r   ru   zcom.example.some_methodr›   )r1   rª   r¢   r£   r¤   s        r5   Útest_auto_namez$TestRegisterDecorator.test_auto_nameÔ   sî   € ðð ð ð ð Õ*ñ ô ð ð
 �e‘g”gˆGå!%¤¡¤ˆGÔØ×Ò˜W¨^ÐÑ<Ô<Ð<ð ×Ò˜Q¥ GÔ$6Ô$AÑ BÔ BÑCÔCÐCØÔ%Ô0°Ô3ˆDØ×Ò˜V T¨!¤WÑ-Ô-Ð-Ø—.’.Ñ"Ô" 1Ô% aÔ(¨Ô+ˆCØ×ÒÐ6¸¼ÑFÔFÐFÐFÐFr7   N)r   r€   r�   r¥   r«   rx   r7   r5   rŽ   rŽ   ¾   s:   € € € € € ð	Nð 	Nð 	Nð(	Gð 	Gð 	Gð 	Gð 	Gr7   rŽ   c                   ó¦  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zd„ ZdS )ÚTestPublisherc              #   ó  K  — t          ¦   «         }t          |¦  «         |                     d¦  «        V —}|                      |d ¦  «         |                     dddd¦  «        V —}|                      |d ¦  «         |                     dddddd¬¦  «        V —}|                      |d ¦  «         |                     dt	          j        d¬	¦  «        ¬
¦  «        V —}|                      |d ¦  «         |                     ddddddt	          j        dg d¢¬¦  «        ¬¦  «        V —}|                      |d ¦  «         |                     ddddddt	          j        dg d¢d¬¦  «        ¬¦  «        V —}|                      |d ¦  «         d S )Núcom.myapp.topic1rG   rH   rI   rL   Úhello©rN   rK   F)Ú
exclude_me©Úoptions©rB   éÈ   i,  )r²   Úexclude©rN   rK   r´   T)r²   r·   Úretain)r   r   ÚpublishrŸ   r   ÚPublishOptions©r1   r2   Úpublications      r5   Útest_publishzTestPublisher.test_publishé   s	  è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"à '§¢Ð0BÑ CÔ CÐCÐCˆKØ×Ò˜[¨$Ñ/Ô/Ð/à '§¢Ð0BÀAÀqÈ!Ñ LÔ LÐLÐLˆKØ×Ò˜[¨$Ñ/Ô/Ð/à '§¢Ð0BÀAÀqÈ!ÐQSÐY` Ñ aÔ aÐaÐaˆKØ×Ò˜[¨$Ñ/Ô/Ð/à '§¢Ð0BÍEÔL`ÐlqÐLrÑLrÔLr Ñ sÔ sÐsÐsˆKØ×Ò˜[¨$Ñ/Ô/Ð/à '§¢Ð0BÀAÀqÈ!ÐQSÐY`ÕjoÔj~ð  KPð  Zið  Zið  Zið  kjñ  kjô  kj ñ  !kô  !kð  kð  kˆKØ×Ò˜[¨$Ñ/Ô/Ð/à '§¢Ð0BÀAÀqÈ!ÐQSÐY`ÕjoÔj~ð  KPð  Zið  Zið  Zið  rvð  kwñ  kwô  kw ñ  !xô  !xð  xð  xˆKØ×Ò˜[¨$Ñ/Ô/Ð/Ð/Ð/r7   c              #   ó˜  K  — t          ¦   «         }t          |¦  «         |                     dt          j        d¬¦  «        ¬¦  «        }t          j        dd¬¦  «        }|                     |¦  «        V — 	 |V — d S # t          $ rA}|                      d|j	        ¦  «         |                      d|j
        ¦  «         Y d }~d S d }~ww xY w)Núnoreply.fooT©r[   r³   Útestingúhow are you?©Úreasonr   )r   r   rº   r   r»   r   rŠ   r   rŸ   ro   r   )r1   r2   r½   ÚdetailsÚes        r5   Útest_publish_outstanding_errorsz-TestPublisher.test_publish_outstanding_errors   sô   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð
 "Ÿ/š/ØÝÔ,¸Ð>Ñ>Ô>ð *ñ ô ˆKõ Ô(°	À>ÐRÑRÔRˆGØ—/’/ 'Ñ*Ô*Ð*Ð*Ð*ð<Ø!Ð!Ð!Ð!Ð!Ð!øÝ#ð <ð <ð <Ø× Ò  ¨A¬GÑ4Ô4Ð4Ø× Ò  °´Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøs   Á8A> Á>
C	Â6CÃC	c              #   ó^  ‡‡K  — t          ¦   «         }t          |¦  «         t          ¦   «         Š|                     dt	          j        d¬¦  «        ¬¦  «        }g Šˆˆfd„}|                     |¦  «         t	          j        dd¬¦  «        }|                     |¦  «         |  	                    d	t          ‰¦  «        ¦  «         ‰                     d ¦  «         	 |V — d S # t          $ rA}|  	                    d|j        ¦  «         |  	                    d|j        ¦  «         Y d }~d S d }~ww xY w)
NrÀ   TrÁ   r³   c                 ó2   •— ‰                      | ¦  «         ‰S r9   )Úappend)r   Úerror_dÚ
got_errorss    €€r5   ÚerrbackzLTestPublisher.test_publish_outstanding_errors_async_errback.<locals>.errback(  s   ø€ Ø×!Ò! $Ñ'Ô'Ð'Ø�r7   rÂ   rÃ   rÄ   rG   )r   r   r   rº   r   r»   Ú
addErrbackr   rŠ   rŸ   r`   Úcallbackr   ro   r   )r1   r2   Úpublication_drÎ   rÆ   rÇ   rÌ   rÍ   s         @@r5   Ú-test_publish_outstanding_errors_async_errbackz;TestPublisher.test_publish_outstanding_errors_async_errback  sh  øøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"Ý‘j”jˆGð
 $ŸOšOØÝÔ,¸Ð>Ñ>Ô>ð ,ñ ô ˆMð
 ˆJðð ð ð ð ð ð ×$Ò$ WÑ-Ô-Ð-õ Ô(°	À>ÐRÑRÔRˆGØ�OŠO˜GÑ$Ô$Ð$ð
 ×Ò˜Q¥ J¡¤Ñ0Ô0Ð0ð ×Ò˜TÑ"Ô"Ð"ð<Ø#Ð#Ð#Ð#Ð#Ð#øÝ#ð <ð <ð <Ø× Ò  ¨A¬GÑ4Ô4Ð4Ø× Ò  °´Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð<øøøs   ÃC! Ã!
D,Ã+6D'Ä'D,c              #   ó   K  — t          ¦   «         }t          |¦  «         |                     dt          j        d¬¦  «        ¬¦  «        V —}|                      t          |j        ¦  «        t          k    ¦  «         |                     ddddt          j        d¬¦  «        ¬¦  «        V —}|                      t          |j        ¦  «        t          k    ¦  «         |                     dddddd	t          j        d¬¦  «        ¬
¦  «        V —}|                      t          |j        ¦  «        t          k    ¦  «         |                     dt          j        dd¬¦  «        ¬¦  «        V —}|                      t          |j        ¦  «        t          k    ¦  «         |                     dddddd	t          j        dg d¢d¬¦  «        ¬
¦  «        V —}|                      t          |j        ¦  «        t          k    ¦  «         d S )Nr¯   TrÁ   r³   rG   rH   rI   rL   r°   r¸   F)r²   r[   rµ   )r²   r·   r[   )	r   r   rº   r   r»   Ú
assertTrueÚtyper)   Úintr¼   s      r5   Útest_publish_acknowledgedz'TestPublisher.test_publish_acknowledgedA  s5  è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"à '§¢Ð0BÍEÔL`ÐmqÐLrÑLrÔLr Ñ sÔ sÐsÐsˆKØ�OŠO�D ¤Ñ0Ô0µCÒ7Ñ8Ô8Ð8à '§¢Ð0BÀAÀqÈ!ÕUZÔUiÐvzÐU{ÑU{ÔU{ Ñ |Ô |Ð|Ð|ˆKØ�OŠO�D ¤Ñ0Ô0µCÒ7Ñ8Ô8Ð8à '§¢Ð0BÀAÀqÈ!ÐQSÐY`ÕjoÔj~ð  LPð  kQñ  kQô  kQ ñ  !Rô  !Rð  Rð  RˆKØ�OŠO�D ¤Ñ0Ô0µCÒ7Ñ8Ô8Ð8à '§¢Ð0BÍEÔL`Ðlqð  @Dð  MEñ  MEô  ME ñ  !Fô  !Fð  Fð  FˆKØ�OŠO�D ¤Ñ0Ô0µCÒ7Ñ8Ô8Ð8à '§¢Ð0BÀAÀqÈ!ÐQSÐY`ÕjoÔj~ð  KPð  Zið  Zið  Zið  w{ð  k|ñ  k|ô  k| ñ  !}ô  !}ð  }ð  }ˆKØ�OŠO�D ¤Ñ0Ô0µCÒ7Ñ8Ô8Ð8Ð8Ð8r7   c              #   ó6  K  — t          ¦   «         }t          |¦  «         t          j        d¬¦  «        }|                      |                     d|¬¦  «        t          ¦  «        V — |                      |                     d|¬¦  «        t          ¦  «        V — d S ©NTrÁ   zde.myapp.topic1r³   Úfoobar)r   r   r   r»   ÚassertFailurerº   r   ©r1   r2   r´   s      r5   Ú test_publish_undefined_exceptionz.TestPublisher.test_publish_undefined_exceptionU  s”   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åÔ*°tÐ<Ñ<Ô<ˆGà×$Ò$ W§_¢_Ð5FÐPW _Ñ%XÔ%XÕZjÑkÔkÐkÐkÐkØ×$Ò$ W§_¢_°XÀw _Ñ%OÔ%OÕQaÑbÔbÐbÐbÐbÐbÐbr7   c              #   óž  K  — t          ¦   «         }t          |¦  «         t          j        d¬¦  «        }|                     t
          ¦  «         |                      |                     d|¬¦  «        t
          ¦  «        V — |                     t          ¦  «         |                      |                     d|¬¦  «        t
          ¦  «        V — d S rÙ   )	r   r   r   r»   Údefiner   rÛ   rº   r   rÜ   s      r5   Útest_publish_defined_exceptionz,TestPublisher.test_publish_defined_exception_  s¸   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åÔ*°tÐ<Ñ<Ô<ˆGà�NŠN�=Ñ)Ô)Ð)Ø×$Ò$ W§_¢_Ð5FÐPW _Ñ%XÔ%XÕZgÑhÔhÐhÐhÐhà�NŠN�:Ñ&Ô&Ð&Ø×$Ò$ W§_¢_°XÀw _Ñ%OÔ%OÕQ^Ñ_Ô_Ð_Ð_Ð_Ð_Ð_r7   c              #   óv  K  — t          ¦   «         }t          |¦  «         |                     d¦  «        V —}|                      |d¦  «         |                     dddd¦  «        V —}|                      |d¦  «         |                     dddddd¬¦  «        V —}|                      |d¦  «         |                     dt	          j        d	¬
¦  «        ¬¦  «        V —}|                      |d¦  «         |                     ddddddt	          j        d	¬
¦  «        ¬¦  «        V —}|                      |d¦  «         d S )NrA   rB   rG   rH   rI   rL   r°   r±   i'  )Útimeoutr³   r¸   )r   r   r£   rŸ   r   ÚCallOptions©r1   r2   Úress      r5   Ú	test_callzTestPublisher.test_calll  sl  è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"àŸšÐ%;Ñ<Ô<Ð<Ð<ˆCØ×Ò˜S #Ñ&Ô&Ð&àŸšÐ%;¸QÀÀ1ÑEÔEÐEÐEˆCØ×Ò˜S #Ñ&Ô&Ð&àŸšÐ%;¸QÀÀ1È"ÐRY˜ÑZÔZÐZÐZˆCØ×Ò˜S #Ñ&Ô&Ð&àŸšÐ%;ÅUÔEVÐ_dÐEeÑEeÔEe˜ÑfÔfÐfÐfˆCØ×Ò˜S #Ñ&Ô&Ð&àŸšÐ%;¸QÀÀ1È"ÐRYÕchÔctð  ~Cð  dDñ  dDô  dD˜ñ  Eô  Eð  Eð  EˆCØ×Ò˜S #Ñ&Ô&Ð&Ð&Ð&r7   c              #   óþ  K  — t          ¦   «         }t          |¦  «         |                     d¦  «        V —}|                      |t          j        ¦  «         |                      |j        d¦  «         |                      |j        i ¦  «         |                     d¦  «        V —}|                      |t          j        ¦  «         |                      |j        d¦  «         |                      |j        dddœ¦  «         d S )NrE   rF   rJ   rK   rL   rM   )	r   r   r£   ÚassertIsInstancer   Ú
CallResultrŸ   ÚresultsÚ	kwresultsrä   s      r5   Útest_call_with_complex_resultz+TestPublisher.test_call_with_complex_result€  sï   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"àŸšÐ%;Ñ<Ô<Ð<Ð<ˆCØ×!Ò! #¥uÔ'7Ñ8Ô8Ð8Ø×Ò˜Sœ[¨)Ñ4Ô4Ð4Ø×Ò˜Sœ]¨BÑ/Ô/Ð/àŸšÐ%;Ñ<Ô<Ð<Ð<ˆCØ×!Ò! #¥uÔ'7Ñ8Ô8Ð8Ø×Ò˜Sœ[¨)Ñ4Ô4Ð4Ø×Ò˜Sœ]°EÀ"Ð,EÐ,EÑFÔFÐFÐFÐFr7   c              #   óP  K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V —}|                      t	          |j        ¦  «        t          k    ¦  «         |                     |dt          j        d¬¦  «        ¬¦  «        V —}|                      t	          |j        ¦  «        t          k    ¦  «         |                     |dt          j        dd¬¦  «        ¬¦  «        V —}|                      t	          |j        ¦  «        t          k    ¦  «         d S )Nc                  ó(   — t          d| |¦  «         d S ©Nz	got event©rU   rP   s     r5   Úon_eventz.TestPublisher.test_subscribe.<locals>.on_event”  ó   € Ý�k 4¨Ñ0Ô0Ð0Ð0Ð0r7   r¯   Úwildcard©Úmatchr³   T)rõ   Úget_retained)	r   r   Ú	subscriberÔ   rÕ   r)   rÖ   r   ÚSubscribeOptions©r1   r2   rñ   Úsubscriptions       r5   Útest_subscribezTestPublisher.test_subscribe�  sV  è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð1ð 1ð 1ð ")×!2Ò!2°8Ð=OÑ!PÔ!PÐPÐPˆLØ�OŠO�D ¤Ñ1Ô1µSÒ8Ñ9Ô9Ð9à!(×!2Ò!2°8Ð=OÕY^ÔYoð  wAð  ZBñ  ZBô  ZBÐ!2ñ  "Cô  "Cð  Cð  CˆLØ�OŠO�D ¤Ñ1Ô1µSÒ8Ñ9Ô9Ð9à!(×!2Ò!2°8Ð=OÕY^ÔYoð  wAð  PTð  ZUñ  ZUô  ZUÐ!2ñ  "Vô  "Vð  Vð  VˆLØ�OŠO�D ¤Ñ1Ô1µSÒ8Ñ9Ô9Ð9Ð9Ð9r7   c              #   ó\  ‡‡K  — t          ¦   «         }t          |¦  «         t          ¦   «         Št          ¦   «         Š|                     ˆfd„d¦  «        V —}|                     ˆfd„d¦  «        V —}|                      |j        |j        k    ¦  «         |                     dt          j        dd¬¦  «        ¬¦  «        V —}| 	                    t          j        |j        |j        ¦  «        ¦  «         |                      ‰j        d¦  «         |                      ‰j        d¦  «         d S )	Nc                  ó.   •— ‰                       d¦  «        S ©Né*   ©rÐ   ©Úevent0s   €r5   ú<lambda>z5TestPublisher.test_double_subscribe.<locals>.<lambda>©  ó   ø€ ˜Ÿš¨Ñ+Ô+€ r7   r¯   c                  ó.   •— ‰                       d¦  «        S ©NrN   r   ©Úevent1s   €r5   r  z5TestPublisher.test_double_subscribe.<locals>.<lambda>«  ó   ø€ ˜Ÿš¨Ñ.Ô.€ r7   TF©r[   r²   r³   úMissing callback)r   r   r   r÷   rÔ   r)   rº   r   r»   r.   r   ÚEventÚcalled)r1   r2   Úsubscription0Úsubscription1rº   r  r  s        @@r5   Útest_double_subscribez#TestPublisher.test_double_subscribe   sM  øøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"å‘Z”ZˆFÝ‘Z”ZˆFà")×"3Ò"3Ø+Ð+Ð+Ð+Ð-?ñ#Aô #Að Að AˆMà")×"3Ò"3Ø.Ð.Ð.Ð.Ð0Bñ#Dô #Dð Dð DˆMð �OŠO˜MÔ,°Ô0@Ò@ÑAÔAÐAð
 $ŸOšOØ"ÝÔ,¸È%ÐPÑPÔPð ,ñ ô ð ð ˆGð ×Ò�gœm¨MÔ,<¸g¼jÑIÔIÑJÔJÐJð �OŠO˜FœMÐ+=Ñ>Ô>Ð>Ø�OŠO˜FœMÐ+=Ñ>Ô>Ð>Ð>Ð>r7   c              #   ó¤  ‡‡‡K  — t          ¦   «         Št          ‰¦  «         ˆfd„}|‰_        t          ¦   «         Št          ¦   «         Š‰                     ˆfd„d¦  «        V —}‰                     ˆfd„d¦  «        V —}|                      |j        |j        k    ¦  «         |                     ¦   «         V — ‰                     dt          j
        dd¬¦  «        ¬¦  «        V —}‰                     t          j        |j        |j        ¦  «        ¦  «         |                      ‰j        d	¦  «         |                      ‰j         d
¦  «         dS )z}
            Make sure we correctly deal with unsubscribing one of our handlers
            from the same topic.
            c                 óf   •— t          | t          j        ¦  «        rJ ‚t          j        ‰| ¦  «        S r9   )rW   r   rk   r   r.   )r4   r2   s    €r5   r.   zITestPublisher.test_double_subscribe_single_unsubscribe.<locals>.onMessageÈ  s/   ø€ Ý% c­7Ô+?Ñ@Ô@Ð@Ð@Ð@Ý)Ô3°G¸SÑAÔAÐAr7   c                  ó.   •— ‰                       d¦  «        S rþ   r   r  s   €r5   r  zHTestPublisher.test_double_subscribe_single_unsubscribe.<locals>.<lambda>Ò  r  r7   r¯   c                  ó.   •— ‰                       d¦  «        S r  r   r  s   €r5   r  zHTestPublisher.test_double_subscribe_single_unsubscribe.<locals>.<lambda>Ô  r	  r7   TFr
  r³   r  úSecond callback fired.N)r   r   r.   r   r÷   rÔ   r)   Úunsubscriberº   r   r»   r   r  r  )r1   r.   r  r  rº   r  r  r2   s        @@@r5   Ú(test_double_subscribe_single_unsubscribez6TestPublisher.test_double_subscribe_single_unsubscribe¼  s“  øøøè è € õ )Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð
Bð Bð Bð Bð Bð !*ˆGÔå‘Z”ZˆFÝ‘Z”ZˆFà")×"3Ò"3Ø+Ð+Ð+Ð+Ð-?ñ#Aô #Að Að AˆMà")×"3Ò"3Ø.Ð.Ð.Ð.Ð0Bñ#Dô #Dð Dð DˆMð �OŠO˜MÔ,°Ô0@Ò@ÑAÔAÐAØ×+Ò+Ñ-Ô-Ð-Ð-Ð-ð
 $ŸOšOØ"ÝÔ,¸È%ÐPÑPÔPð ,ñ ô ð ð ˆGð ×Ò�gœm¨MÔ,<¸g¼jÑIÔIÑJÔJÐJð �OŠO˜FœMÐ+=Ñ>Ô>Ð>Ø�OŠO ¤Ð-Ð/GÑHÔHÐHÐHÐHr7   c              #   óR  ‡‡‡‡K  — t          ¦   «         Št          ‰¦  «         t          ¦   «         Šˆˆfd„}|‰_        t          ¦   «         Št          ¦   «         Š‰                     ˆfd„d¦  «        V —}‰                     ˆfd„d¦  «        V —}|                      |j        |j        k    ¦  «         |                     ¦   «         V — |                     ¦   «         V — ‰j        sJ ‚‰ 	                    dt          j        dd¬¦  «        ¬¦  «        V —}	 ‰                     t          j        |j        |j        ¦  «        ¦  «         |                      d	¦  «         n# t          $ r Y nw xY w|                      ‰j         d
¦  «         |                      ‰j         d¦  «         dS )z
            If we subscribe twice, and unsubscribe twice, we should then get
            an Unsubscribed message.
            c                 óŒ   •— t          | t          j        ¦  «        r‰                     | ¦  «         t	          j        ‰| ¦  «        S r9   )rW   r   rk   rÐ   r   r.   )r4   r2   Úunsubscribed_ds    €€r5   r.   zITestPublisher.test_double_subscribe_double_unsubscribe.<locals>.onMessageó  s?   ø€ Ý˜c¥7Ô#7Ñ8Ô8ð 1Ø"×+Ò+¨CÑ0Ô0Ð0Ý)Ô3°G¸SÑAÔAÐAr7   c                  ó.   •— ‰                       d¦  «        S rþ   r   r  s   €r5   r  zHTestPublisher.test_double_subscribe_double_unsubscribe.<locals>.<lambda>ý  r  r7   r¯   c                  ó.   •— ‰                       d¦  «        S r  r   r  s   €r5   r  zHTestPublisher.test_double_subscribe_double_unsubscribe.<locals>.<lambda>ÿ  r	  r7   TFr
  r³   zExpected ProtocolErrorzFirst callback fired.r  N)r   r   r   r.   r÷   rÔ   r)   r  r  rº   r   r»   r   r  r   r   )	r1   r.   r  r  rº   r  r  r2   r  s	        @@@@r5   Ú(test_double_subscribe_double_unsubscribez6TestPublisher.test_double_subscribe_double_unsubscribeç  s
  øøøøè è € õ )Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"õ &™ZœZˆNðBð Bð Bð Bð Bð Bð !*ˆGÔå‘Z”ZˆFÝ‘Z”ZˆFà")×"3Ò"3Ø+Ð+Ð+Ð+Ð-?ñ#Aô #Að Að AˆMà")×"3Ò"3Ø.Ð.Ð.Ð.Ð0Bñ#Dô #Dð Dð DˆMð �OŠO˜MÔ,°Ô0@Ò@ÑAÔAÐAØ×+Ò+Ñ-Ô-Ð-Ð-Ð-Ø×+Ò+Ñ-Ô-Ð-Ð-Ð-ð "Ô(Ð(Ð(Ð(ð $ŸOšOØ"ÝÔ,¸È%ÐPÑPÔPð ,ñ ô ð ð ˆGðØ×!Ò!¥'¤-°Ô0@À'Ä*Ñ"MÔ"MÑNÔNÐNØ—	’	Ð2Ñ3Ô3Ð3Ð3øÝ ð ð ð Ø�ðøøøð
 �OŠO ¤Ð-Ð/FÑGÔGÐGØ�OŠO ¤Ð-Ð/GÑHÔHÐHÐHÐHs   ÄAE Å
E,Å+E,c              #   óú  ‡ ‡‡K  — t          ¦   «         }t          |¦  «         t          ¦   «         Št          ¦   «         Šˆˆ fd„}|                     ˆfd„d¦  «        V —}|                     |dt	          j        d¬¦  «        ¦  «        V —}‰                      |j        |j        k    ¦  «         |                     dt	          j	        dd¬¦  «        ¬	¦  «        V —}| 
                    t          j        |j        |j        d
g¬¦  «        ¦  «         ‰                      ‰j        ¦  «         ‰                      ‰j        ¦  «         ‰                      ‰j        d
¦  «         ‰                      ‰j        d¦  «         dS )z²
            Test various error-conditions when we try to add a second
            subscription-handler (its signature must match any
            existing handlers).
            c                  óÆ   •— ‰                      d|v ¦  «         ‰                      t          |d         t          j        ¦  «        ¦  «         ‰                     | ¦  «         d S )NÚboom)rÔ   rW   r   ÚEventDetailsrÐ   )rD   Úkwr  r1   s     €€r5   Úsecondz:TestPublisher.test_double_subscribe_errors.<locals>.second)  sV   ø€ ð —’ ¨" Ñ-Ô-Ð-Ø—’¥
¨2¨f¬:µuÔ7IÑ JÔ JÑKÔKÐKØ—’ Ñ%Ô%Ð%Ð%Ð%r7   c                 ó.   •— ‰                      | ¦  «        S r9   r   )Úargr  s    €r5   r  z<TestPublisher.test_double_subscribe_errors.<locals>.<lambda>1  s   ø€ ˜FŸOšO¨CÑ0Ô0€ r7   r¯   r   ©Údetails_argTFr
  r³   Úarg0rC   )r(  N)r   r   r   r÷   r   rø   rÔ   r)   rº   r»   r.   r   r  r  rŸ   Úresult)r1   r2   r#  r  r  rº   r  r  s   `     @@r5   Útest_double_subscribe_errorsz*TestPublisher.test_double_subscribe_errors  s¯  øøøè è € õ )Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"å‘Z”ZˆFÝ‘Z”ZˆFð&ð &ð &ð &ð &ð &ð #*×"3Ò"3Ø0Ð0Ð0Ð0Ð2Dñ#Fô #Fð Fð FˆMà")×"3Ò"3ØÐ*ÝÔ&°6Ð:Ñ:Ô:ñ#ô #ð ð ˆMð
 �OŠO˜MÔ,°Ô0@Ò@ÑAÔAÐAð $ŸOšOØ"ÝÔ,¸È%ÐPÑPÔPð ,ñ ô ð ð ˆGð ×ÒÝ”˜mÔ.°´
À&ÀÐJÑJÔJñLô Lð Lð
 �OŠO˜FœMÑ*Ô*Ð*Ø�OŠO˜FœMÑ*Ô*Ð*Ø×Ò˜Vœ]¨FÑ3Ô3Ð3Ø×Ò˜Vœ]¨IÑ6Ô6Ð6Ð6Ð6r7   c              #   óÌ  ‡‡K  — t          ¦   «         }t          |¦  «         t          d¦  «        Št          ¦   «         Šˆˆfd„}||_        ˆfd„}|                     |d¦  «        V —}|                     dt          j        dd¬¦  «        ¬¦  «        V —}t          j
        |j        |j        ¦  «        }|                     |¦  «         |                      ‰j        ¦  «         d	S )
zK
            Ensure we handle an exception from the user code.
            zwe have a problemc                 óL   •— ‰| j         k    r‰                     d¦  «         d S d S rw   )ÚvaluerÐ   )rÇ   r4   Úerror_instanceÚ	got_err_ds     €€r5   Úobserverz?TestPublisher.test_publish_callback_exception.<locals>.observerW  s2   ø€ Ø! Q¤WÒ,Ð,Ø×&Ò& tÑ,Ô,Ð,Ð,Ð,ð -Ð,r7   c                  ó   •— ‰ ‚r9   rx   )r.  s   €r5   r   z;TestPublisher.test_publish_callback_exception.<locals>.boom\  s	   ø€ Ø$Ð$r7   r¯   TFr
  r³   N)r   r   ÚRuntimeErrorr   ÚonUserErrorr÷   rº   r   r»   r   r  r)   r.   rÔ   r  )	r1   r2   r0  r   Úsubrº   r4   r.  r/  s	          @@r5   Útest_publish_callback_exceptionz-TestPublisher.test_publish_callback_exceptionL  s  øøè è € õ
 )Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"å)Ð*=Ñ>Ô>ˆNÝ ™
œ
ˆIð-ð -ð -ð -ð -ð -ð #+ˆGÔð%ð %ð %ð %ð %ð  ×)Ò)¨$Ð0BÑCÔCÐCÐCˆCð $ŸOšOØ"ÝÔ,¸È%ÐPÑPÔPð ,ñ ô ð ð ˆGõ ”- ¤¨¬
Ñ3Ô3ˆCØ×Ò˜cÑ"Ô"Ð"ð �OŠO˜IÔ,Ñ-Ô-Ð-Ð-Ð-r7   c              #   ó¦   K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V —}|                     ¦   «         V — d S )Nc                  ó(   — t          d| |¦  «         d S rï   rð   rP   s     r5   rñ   z0TestPublisher.test_unsubscribe.<locals>.on_events  rò   r7   r¯   )r   r   r÷   r  rù   s       r5   Útest_unsubscribezTestPublisher.test_unsubscriben  sj   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð1ð 1ð 1ð ")×!2Ò!2°8Ð=OÑ!PÔ!PÐPÐPˆLØ×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,r7   c              #   ó”  K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V —}|                      t	          |j        ¦  «        t          k    ¦  «         |                     |dt          j        d¬¦  «        ¬¦  «        V —}|                      t	          |j        ¦  «        t          k    ¦  «         d S )Nc                  ó(   — t          d| |¦  «         d S ©Nzgot callrð   rP   s     r5   Úon_callz,TestPublisher.test_register.<locals>.on_call~  ó   € Ý�j $¨Ñ/Ô/Ð/Ð/Ð/r7   rA   rš   rô   r³   )	r   r   r—   rÔ   rÕ   r)   rÖ   r   ÚRegisterOptions©r1   r2   r<  rs   s       r5   Útest_registerzTestPublisher.test_registery  sÝ   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð0ð 0ð 0ð ")×!1Ò!1°'Ð;QÑ!RÔ!RÐRÐRˆLØ�OŠO�D ¤Ñ1Ô1µSÒ8Ñ9Ô9Ð9à!(×!1Ò!1°'Ð;QÕ[`Ô[pÐwð  \Añ  \Aô  \AÐ!1ñ  "Bô  "Bð  Bð  BˆLØ�OŠO�D ¤Ñ1Ô1µSÒ8Ñ9Ô9Ð9Ð9Ð9r7   c              #   ó¦   K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V —}|                     ¦   «         V — d S )Nc                  ó(   — t          d| |¦  «         d S r;  rð   rP   s     r5   r<  z.TestPublisher.test_unregister.<locals>.on_callŒ  r=  r7   rA   )r   r   r—   Ú
unregisterr?  s       r5   Útest_unregisterzTestPublisher.test_unregister‡  sj   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ð0ð 0ð 0ð ")×!1Ò!1°'Ð;QÑ!RÔ!RÐRÐRˆLØ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r7   c                 ór  — t           j        j        dk     rd S t          ¦   «         }t	          |¦  «        }|                      t          ¦  «        5 }|                     t          j	        dd¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         d S )Né   r   iÒ  z3UNREGISTERED received for non-existant registration)ÚtwistedÚversionÚmajorr   r   ÚassertRaisesr   ru   r   rn   ÚassertInÚstrÚ	exception)r1   r2   Ú	transportÚctxs       r5   Ú$test_unregister_no_such_registrationz2TestPublisher.test_unregister_no_such_registration’  sí   € ÝŒÔ$ rÒ)Ð)Ø�Ý(Ñ*Ô*ˆGÝ% gÑ.Ô.ˆIà×"Ò"¥=Ñ1Ô1ð °SØ—’ÝÔ& q¨$Ñ/Ô/ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �MŠMØEÝ�C”MÑ"Ô"ñô ð ð ð s   Á)BÂBÂBc              #   óö   ‡K  — t          ¦   «         }t          |¦  «        }ˆfd„Šd‰_        |                     ‰d¦  «        V —}|                     |j        ¦  «         |                      ‰j        ¦  «         d S )Nc                  ó   •— d‰_         d S rw   )r  )rD   rQ   r<  s     €r5   r<  z2TestPublisher.test_unregister_log.<locals>.on_call¦  s   ø€ Ø!%�”��r7   FrA   )r   r   r  r—   r?   r)   ÚassertFalse)r1   r2   rN  rs   r<  s       @r5   Útest_unregister_logz!TestPublisher.test_unregister_log¡  s�   øè è € å(Ñ*Ô*ˆGÝ% gÑ.Ô.ˆIð&ð &ð &ð &ð &à"ˆGŒNà!(×!1Ò!1°'Ð;QÑ!RÔ!RÐRÐRˆLØ×'Ò'¨¬Ñ8Ô8Ð8Ø×Ò˜Wœ^Ñ,Ô,Ð,Ð,Ð,r7   c                 ó@  ‡— g Š G ˆfd„dt           ¦  «        } |¦   «         }t          |¦  «         |                     d¦  «         |                      t	          ‰¦  «        d¦  «         |                      t          ‰d         d         t          ¦  «        ¦  «         d S )Nc                   ó"   •— e Zd Zˆ fd„Zdd„ZdS )ú7TestPublisher.test_on_disconnect_error.<locals>.AppSessc                 ó@   •— ‰                      |j        |f¦  «         d S r9   ©rË   r-  )r1   rÇ   r4   Úerrorss      €r5   r3  zCTestPublisher.test_on_disconnect_error.<locals>.AppSess.onUserError²  s!   ø€ Ø—M’M 1¤7¨C .Ñ1Ô1Ð1Ð1Ð1r7   Úsnarkc                 ó    — t          d¦  «        ‚)NzThis shouldn't happen)r2  )r1   rN   rK   Úquuxs       r5   ÚonDisconnectzDTestPublisher.test_on_disconnect_error.<locals>.AppSess.onDisconnectµ  s   € å&Ð'>Ñ?Ô?Ð?r7   N)r[  )r   r€   r�   r3  r^  )rZ  s   €r5   ÚAppSessrW  ±  sH   ø€ € € € € ð2ð 2ð 2ð 2ð 2ð@ð @ð @ð @ð @ð @r7   r_  FrG   r   )r   r   r…   rŸ   r`   rÔ   rW   Ú	TypeError)r1   r_  ÚsrZ  s      @r5   Útest_on_disconnect_errorz&TestPublisher.test_on_disconnect_error®  s¾   ø€ ØˆFð@ð @ð @ð @ð @ð @ð @Õ,ñ @ô @ð @ð �‘	”	ˆAÝ˜!ÑÔÐð �IŠI�eÑÔÐð ×Ò�S ™[œ[¨!Ñ,Ô,Ð,Ø�OŠO�J v¨a¤y°¤|µYÑ?Ô?Ñ@Ô@Ð@Ð@Ð@r7   N)r   r€   r�   r   r¾   rÈ   rÒ   r×   rÝ   rà   ræ   rì   rû   r  r  r  r*  r5  r8  r@  rD  rP  rT  rb  rx   r7   r5   r­   r­   ç   s/  € € € € € à	ð	0ð 	0ñ 
Œð	0ð, 
ð	<ð 	<ñ 
Œð	<ð. 
ð&	<ð &	<ñ 
Œð&	<ðP 
ð	9ð 	9ñ 
Œð	9ð& 
ð	cð 	cñ 
Œð	cð 
ð
	`ð 
	`ñ 
Œð
	`ð 
ð	'ð 	'ñ 
Œð	'ð& 
ð	Gð 	Gñ 
Œð	Gð 
ð	:ð 	:ñ 
Œð	:ð  
ð	?ð 	?ñ 
Œð	?ð6 
ð(	Ið (	Iñ 
Œð(	IðT 
ð2	Ið 2	Iñ 
Œð2	Iðh 
ð-	7ð -	7ñ 
Œð-	7ð^ 
ð	.ð 	.ñ 
Œð	.ðB 
ð	-ð 	-ñ 
Œð	-ð 
ð	:ð 	:ñ 
Œð	:ð 
ð	,ð 	,ñ 
Œð	,ð	ð 	ð 	ð 
ð
	-ð 
	-ñ 
Œð
	-ð	Að 	Að 	Að 	Að 	Ar7   r­   c                   óê   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         ZdS )ÚTestInvokerc              #   óÔ   K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V — |                     d¦  «        V —}|                      |d¦  «         d S )Nc                  ó   — dS ©NrL   rx   rx   r7   r5   Úmyproc1z(TestInvoker.test_invoke.<locals>.myproc1Ë  ó   € Ø�rr7   úcom.myapp.myproc1rL   )r   r   r—   r£   rŸ   )r1   r2   rh  rå   s       r5   Útest_invokezTestInvoker.test_invokeÆ  s�   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ðð ð ð ×"Ò" 7Ð,?Ñ@Ô@Ð@Ð@Ð@àŸšÐ%8Ñ9Ô9Ð9Ð9ˆCØ×Ò˜S "Ñ%Ô%Ð%Ð%Ð%r7   c              #   ó$  K  — t          ¦   «         }t          |¦  «         d„ }|                     |d¦  «        V — |                     d¦  «        }|                     d¦  «        }t	          ||g¦  «        V —}|                      |ddg¦  «         d S )Nc                  ó   — dS rg  rx   rx   r7   r5   rh  z.TestInvoker.test_invoke_twice.<locals>.myproc1Ø  ri  r7   rj  ©TrL   )r   r   r—   r£   r	   rŸ   )r1   r2   rh  Úd0Úd1rå   s         r5   Útest_invoke_twicezTestInvoker.test_invoke_twiceÓ  s©   è è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"ðð ð ð ×"Ò" 7Ð,?Ñ@Ô@Ð@Ð@Ð@à—’Ð1Ñ2Ô2ˆBØ—’Ð1Ñ2Ô2ˆBÝ$ b¨" XÑ.Ô.Ð.Ð.ˆCØ×Ò˜S :¨zÐ":Ñ;Ô;Ð;Ð;Ð;r7   c              #   óè  ‡ ‡	‡
‡K  — t          ¦   «         }t          ¦   «         }t          |¦  «        }t          |¦  «        }ˆ fd„Š|j        Š	|j        Š
ˆ	ˆfd„|_        ˆ
ˆfd„|_        d„ }|                     |d¦  «        V — |                     |d¦  «        V — |                     d¦  «        }|                     d¦  «        }t          ||g¦  «        V —}‰                      |ddg¦  «         dS )zW
            make sure each session independently generates sequential IDs
            c                 óð   •— t          |t          j        ¦  «        r‰                     |j        d¦  «         n5t          |t          j        ¦  «        r‰                     |j        d¦  «          | |¦  «        S )NrG   rH   )rW   r   rl   rŸ   r]   rc   )Úorigr4   r1   s     €r5   Úverify_seq_idzCTestInvoker.test_invoke_request_id_sequences.<locals>.verify_seq_idî  sm   ø€ Ý˜c¥7Ô#3Ñ4Ô4ð 5Ø×$Ò$ S¤[°!Ñ4Ô4Ð4Ð4Ý ¥W¤\Ñ2Ô2ð 5Ø×$Ò$ S¤[°!Ñ4Ô4Ð4Ø�t˜C‘y”yÐ r7   c                 ó   •—  ‰‰| ¦  «        S r9   rx   )r4   Úorig0ru  s    €€r5   r  z>TestInvoker.test_invoke_request_id_sequences.<locals>.<lambda>ö  ó   ø€  m m°E¸3Ñ&?Ô&?€ r7   c                 ó   •—  ‰‰| ¦  «        S r9   rx   )r4   Úorig1ru  s    €€r5   r  z>TestInvoker.test_invoke_request_id_sequences.<locals>.<lambda>÷  rx  r7   c                  ó   — dS rg  rx   rx   r7   r5   rh  z=TestInvoker.test_invoke_request_id_sequences.<locals>.myproc1ù  ri  r7   rj  rn  N)r   r   ru   r—   r£   r	   rŸ   )r1   Úhandler0Úhandler1Útrans0Útrans1rh  ro  rp  rå   rw  rz  ru  s   `        @@@r5   Ú test_invoke_request_id_sequencesz,TestInvoker.test_invoke_request_id_sequencesâ  s2  øøøøè è € õ
 *Ñ+Ô+ˆHÝ)Ñ+Ô+ˆHÝ" 8Ñ,Ô,ˆFÝ" 8Ñ,Ô,ˆFð!ð !ð !ð !ð !ð ”KˆEØ”KˆEØ?Ð?Ð?Ð?Ð?ˆFŒKØ?Ð?Ð?Ð?Ð?ˆFŒKðð ð ð ×#Ò# GÐ-@ÑAÔAÐAÐAÐAØ×#Ò# GÐ-@ÑAÔAÐAÐAÐAà—’Ð2Ñ3Ô3ˆBØ—’Ð2Ñ3Ô3ˆBÝ$ b¨" XÑ.Ô.Ð.Ð.ˆCØ×Ò˜S :¨zÐ":Ñ;Ô;Ð;Ð;Ð;r7   c              #   ó.  ‡‡K  — t          ¦   «         }d|_        t          |¦  «         g Šˆfd„}||_        t	          d¦  «        Šˆfd„}|                     |d¦  «        V — 	 |                     d¦  «        V — |                      d¦  «         n?# t          $ r2}|  	                    t          |t          ¦  «        ¦  «         Y d }~nd }~ww xY w|                      dt          ‰¦  «        ¦  «         |                      ‰‰d         d         ¦  «         d S )	NTc                 ó@   •— ‰                      | j        |f¦  «         d S r9   rY  )rÇ   r4   rZ  s     €r5   Ú	log_errorz6TestInvoker.test_invoke_user_raises.<locals>.log_error  s!   ø€ Ø—’˜qœw¨˜nÑ-Ô-Ð-Ð-Ð-r7   rN   c                  ó   •— ‰ ‚r9   rx   )Ú
name_errors   €r5   Úbingz1TestInvoker.test_invoke_user_raises.<locals>.bing  s	   ø€ Ø Ð r7   zcom.myapp.myproc99zExpected an errorrG   r   )r   Útraceback_appr   r3  Ú	NameErrorr—   r£   r   rˆ   rÔ   rW   r2  rŸ   r`   )r1   r2   rƒ  r†  rÇ   rZ  r…  s        @@r5   Útest_invoke_user_raisesz#TestInvoker.test_invoke_user_raises  sV  øøè è € å(Ñ*Ô*ˆGØ$(ˆGÔ!Ý˜'Ñ"Ô"Ð"ØˆFð.ð .ð .ð .ð .à"+ˆGÔå" 5Ñ)Ô)ˆJð!ð !ð !ð !ð !ð ×"Ò" 4Ð)=Ñ>Ô>Ð>Ð>Ð>ð=Ø—l’lÐ#7Ñ8Ô8Ð8Ð8Ð8Ø—	’	Ð-Ñ.Ô.Ð.Ð.øÝð =ð =ð =ð —’¥
¨1­lÑ ;Ô ;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<øøøøð	=øøøð ×Ò˜Q¥ F¡¤Ñ,Ô,Ð,Ø×Ò˜Z¨°¬°1¬Ñ6Ô6Ð6Ð6Ð6s   Á$,B Â
CÂ(CÃCc              #   óP  ‡ ‡K  — t          ¦   «         }t          |¦  «         t          dˆ fd„	¦   «         }t          t	          d„ t          d¦  «        ¦  «        ¦  «        Šˆfd„}|                     |dt          j        d¬¦  «        ¦  «        V — | 	                    dt          j
        |¬¦  «        ¬	¦  «        V —}‰                      d
|¦  «         t          d¦  «        D ]C}‰                      ‰|         j        ¦  «         ‰                      |‰|         j        ¦  «         ŒDd S )Nc              3   ó   •K  — ‰                      | d u¦  «         ‰                      | j        d u¦  «         t          d¦  «        D ](}|                      |¦  «         t          |¦  «        V — Œ)t	          d¦  «         d S )Né
   rÿ   )rÔ   rS   Úranger   r   )rÆ   Úir1   s     €r5   r†  z8TestInvoker.test_invoke_progressive_result.<locals>.bing*  s…   øè è € à—’ ¨tÐ 3Ñ4Ô4Ð4Ø—’ Ô 0¸Ð <Ñ=Ô=Ð=Ý˜r™œð %ð %�AØ×$Ò$ QÑ'Ô'Ð'Ý! !™*œ*Ð$Ð$Ð$Ð$Ý˜B‘”���r7   c                 ó   — t          ¦   «         S r9   )r   )Ú_s    r5   r  z<TestInvoker.test_invoke_progressive_result.<locals>.<lambda>3  s
   € ­X©Z¬Z€ r7   rŒ  c                 ó>   •— ‰|                                | ¦  «         d S r9   r   )r%  Úprogressives    €r5   rS   z<TestInvoker.test_invoke_progressive_result.<locals>.progress5  s"   ø€ Ø˜CÔ ×)Ò)¨#Ñ.Ô.Ð.Ð.Ð.r7   úcom.myapp.myproc2rÆ   r&  ©Úon_progressr³   rÿ   r9   )r   r   r   ÚlistÚmapr�  r—   r   r>  r£   rã   rŸ   rÔ   r  r)  )r1   r2   r†  rS   rå   rŽ  r’  s   `     @r5   Útest_invoke_progressive_resultz*TestInvoker.test_invoke_progressive_result%  sh  øøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åð ð  ð  ð  ð  ñ Œ_ð õ �sÐ#7Ð#7½¸r¹¼ÑCÔCÑDÔDˆKð/ð /ð /ð /ð /ð ×"Ò"ØØ#ÝÔ%°)Ð<Ñ<Ô<ñô ð ð ð ð
  ŸšØ#ÝÔ)°hÐ?Ñ?Ô?ð %ñ ô ð ð ˆCð ×Ò˜R Ñ%Ô%Ð%å˜2‘Y”Yð ;ð ;�Ø—’ ¨A¤Ô 5Ñ6Ô6Ð6Ø× Ò   K°¤NÔ$9Ñ:Ô:Ð:Ð:ð;ð ;r7   c              #   ó¬  ‡ ‡‡‡K  — t          ¦   «         }t          |¦  «         t          dˆ fd„	¦   «         }t          ¦   «         Št	          d¦  «        Šg Šˆfd„}||_        dˆˆˆ fd„	}|                     |dt          j        d¬¦  «        ¦  «        V — | 	                    ddt          j
        |¬	¦  «        d
¬¦  «        V —}‰                      d|¦  «         ‰                      ‰j        ¦  «         ‰                      d‰j        ¦  «         ‰                      dt          ‰¦  «        ¦  «         ‰                      ‰‰d         d         ¦  «         d S )Nc              3   ó8  •K  — ‰                      |d u¦  «         ‰                      |j        d u¦  «         ‰                     |d¦  «         ‰                     d| ¦  «         |                     dd¬¦  «         t          d¦  «        V — t	          d¦  «         d S )NÚwordr%  ÚlifeÚnothing)Ú	somethingz
meaning ofrÿ   )rÔ   rS   rŸ   r   r   )r%  rÆ   Úkeyr1   s      €r5   r†  z>TestInvoker.test_invoke_progressive_result_error.<locals>.bingM  s    øè è € à—’ ¨tÐ 3Ñ4Ô4Ð4Ø—’ Ô 0¸Ð <Ñ=Ô=Ð=Ø× Ò   fÑ-Ô-Ð-Ø× Ò  ¨Ñ,Ô,Ð,Ø× Ò  °9Ð Ñ=Ô=Ð=Ý˜lÑ+Ô+Ð+Ð+Ð+Ý˜B‘”���r7   rN   c                 ó@   •— ‰                      | j        |f¦  «         d S r9   rY  )rÇ   r4   Úlogged_errorss     €r5   Ú	got_errorzCTestInvoker.test_invoke_progressive_result_error.<locals>.got_error[  s#   ø€ Ø×$Ò$ a¤g¨s ^Ñ4Ô4Ð4Ð4Ð4r7   c                 ó^   •— ‰                      d|¦  «         ‰                     | ¦  «         ‰‚)Nr�  )rŸ   rÐ   )r%  rž  Úgot_progressÚprogress_errorr1   s     €€€r5   rS   zBTestInvoker.test_invoke_progressive_result_error.<locals>.progress_  s3   ø€ Ø× Ò  ¨IÑ6Ô6Ð6Ø×%Ò% cÑ*Ô*Ð*Ø$Ð$r7   r“  rÆ   r&  r%  r”  r›  )r´   rŸ  rÿ   rœ  rG   r   )NNr9   )r   r   r   r   rˆ  r3  r—   r   r>  r£   rã   rŸ   rÔ   r  r)  r`   )	r1   r2   r†  r¢  rS   rå   r¤  r¡  r¥  s	   `     @@@r5   Ú$test_invoke_progressive_result_errorz0TestInvoker.test_invoke_progressive_result_errorH  s¶  øøøøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åð ð  ð  ð  ð  ñ Œ_ð õ $™:œ:ˆLÝ& uÑ-Ô-ˆNØˆMð5ð 5ð 5ð 5ð 5à"+ˆGÔð%ð %ð %ð %ð %ð %ð %ð %ð ×"Ò"ØØ#ÝÔ%°)Ð<Ñ<Ô<ñô ð ð ð ð  ŸšØ#ØÝÔ)°hÐ?Ñ?Ô?Øð	 %ñ ô ð ð ˆCð ×Ò˜R Ñ%Ô%Ð%ð �OŠO˜LÔ/Ñ0Ô0Ð0Ø×Ò˜V \Ô%8Ñ9Ô9Ð9à×Ò˜Q¥ MÑ 2Ô 2Ñ3Ô3Ð3Ø×Ò˜^¨]¸1Ô-=¸aÔ-@ÑAÔAÐAÐAÐAr7   c              #   ó¤  ‡ ‡K  — t          ¦   «         }t          |¦  «         t          d	ˆ fd„	¦   «         }t          ¦   «         Šˆfd„}|                     |dt          j        d¬¦  «        ¦  «        V — |                     dt          j        |¬¦  «        ¬¦  «        V —}‰  	                    d|¦  «         ‰  
                    ‰j        ¦  «         d S )
Nc              3   óÚ   •K  — ‰                      | d u¦  «         ‰                      | j        d u¦  «         |                      ¦   «          t          d¦  «        V — t          d¦  «         d S )NTrÿ   ©rÔ   rS   r   r   ©rÆ   r1   s    €r5   r†  z@TestInvoker.test_invoke_progressive_result_no_args.<locals>.bing€  sk   øè è € à—’ ¨tÐ 3Ñ4Ô4Ð4Ø—’ Ô 0¸Ð <Ñ=Ô=Ð=Ø× Ò Ñ"Ô"Ð"Ý˜d‘m”mÐ#Ð#Ð#Ý˜B‘”���r7   c                  ó2   •— ‰                       d¦  «         d S )Nzintentionally left blankr   )r¤  s   €r5   rS   zDTestInvoker.test_invoke_progressive_result_no_args.<locals>.progressŠ  s   ø€ Ø×%Ò%Ð&@ÑAÔAÐAÐAÐAr7   r“  rÆ   r&  r”  r³   rÿ   r9   )r   r   r   r   r—   r   r>  r£   rã   rŸ   rÔ   r  ©r1   r2   r†  rS   rå   r¤  s   `    @r5   Ú&test_invoke_progressive_result_no_argsz2TestInvoker.test_invoke_progressive_result_no_args{  s  øøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åð ð  ð  ð  ð  ñ Œ_ð õ $™:œ:ˆLðBð Bð Bð Bð Bð ×"Ò"ØØ#ÝÔ%°)Ð<Ñ<Ô<ñô ð ð ð ð  ŸšØ#ÝÔ)°hÐ?Ñ?Ô?ð %ñ ô ð ð ˆCð ×Ò˜R Ñ%Ô%Ð%Ø�OŠO˜LÔ/Ñ0Ô0Ð0Ð0Ð0r7   c              #   óÜ  ‡ ‡K  — t          ¦   «         }t          |¦  «         t          d
ˆ fd„	¦   «         }t          ¦   «         Šd
ˆfd„	}|                     |dt          j        d¬¦  «        ¦  «        V — |                     dt          j        |¬¦  «        ¬¦  «        V —}‰  	                    d|¦  «         ‰  
                    ‰j        ¦  «         ‰  	                    d	‰j        ¦  «         d S )Nc              3   óÞ   •K  — ‰                      | d u¦  «         ‰                      | j        d u¦  «         |                      d¬¦  «         t          d¦  «        V — t          d¦  «         d S )Nr›  )rŸ  Trÿ   r©  rª  s    €r5   r†  zDTestInvoker.test_invoke_progressive_result_just_kwargs.<locals>.bing   sp   øè è € à—’ ¨tÐ 3Ñ4Ô4Ð4Ø—’ Ô 0¸Ð <Ñ=Ô=Ð=Ø× Ò  VÐ Ñ,Ô,Ð,Ý˜d‘m”mÐ#Ð#Ð#Ý˜B‘”���r7   c                 ó2   •— ‰                      | ¦  «         d S r9   r   )rŸ  r¤  s    €r5   rS   zHTestInvoker.test_invoke_progressive_result_just_kwargs.<locals>.progressª  s   ø€ Ø×%Ò% cÑ*Ô*Ð*Ð*Ð*r7   r“  rÆ   r&  r”  r³   rÿ   r›  r9   )r   r   r   r   r—   r   r>  r£   rã   rŸ   rÔ   r  r)  r¬  s   `    @r5   Ú*test_invoke_progressive_result_just_kwargsz6TestInvoker.test_invoke_progressive_result_just_kwargs›  s1  øøè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"åð ð  ð  ð  ð  ñ Œ_ð õ $™:œ:ˆLð+ð +ð +ð +ð +ð +ð ×"Ò"ØØ#ÝÔ%°)Ð<Ñ<Ô<ñô ð ð ð ð  ŸšØ#ÝÔ)°hÐ?Ñ?Ô?ð %ñ ô ð ð ˆCð ×Ò˜R Ñ%Ô%Ð%Ø�OŠO˜LÔ/Ñ0Ô0Ð0Ø×Ò˜V \Ô%8Ñ9Ô9Ð9Ð9Ð9r7   c              #   ó  ‡K  — t          ¦   «         }t          |¦  «         t          d¦  «        Šˆfd„}|                     |d¦  «        V —}	 |                     d¦  «        V — |                      ¦   «          nZ# t          $ rM}|                      |t          ¦  «         |  	                    | 
                    ¦   «         d¦  «         Y d }~nd }~ww xY w|                     ¦   «         V — d S # |                     ¦   «         V — w xY w)Nza simple errorc                  ó   •— ‰ ‚r9   rx   ©rM  s   €r5   Úraiserz<TestInvoker.test_call_exception_runtimeerror.<locals>.raiserÂ  ó   ø€ Ø�r7   úcom.myapp.myproc_errorz(wamp.error.runtime_error: a simple error)r   r   r2  r—   r£   r   rˆ   rè   r   rŸ   Úerror_messagerC  ©r1   r2   rµ  Úregistration0rÇ   rM  s        @r5   Ú test_call_exception_runtimeerrorz,TestInvoker.test_call_exception_runtimeerror¼  s:  øè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"Ý$Ð%5Ñ6Ô6ˆIð ð  ð  ð  ð  ð #*×"2Ò"2°6Ð;SÑ"TÔ"TÐTÐTˆMð1Ø—l’lÐ#;Ñ<Ô<Ð<Ð<Ð<Ø—	’	‘”��øÝð `ð `ð `Ø×%Ò% aÕ)9Ñ:Ô:Ð:Ø× Ò  §¢Ñ!2Ô!2Ð4^Ñ_Ô_Ð_Ð_Ð_Ð_Ð_Ð_øøøøð`øøøð $×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0ø�m×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0øøøs1   Á+A: Á9C, Á:
CÂACÃC, ÃCÃC, Ã,Dc              #   ó¼  ‡K  — t          ¦   «         }t          |¦  «         t          ¦   «         Šˆfd„}|                     |d¦  «        V —}	 |                     d¦  «        V — |                      ¦   «          n2# t          $ r%}|                      |t          ¦  «         Y d }~nd }~ww xY w|                     ¦   «         V — d S # |                     ¦   «         V — w xY w)Nc                  ó   •— ‰ ‚r9   rx   r´  s   €r5   rµ  z4TestInvoker.test_call_exception_bare.<locals>.raiserÕ  r¶  r7   r·  )	r   r   rˆ   r—   r£   r   rè   r   rC  r¹  s        @r5   Útest_call_exception_barez$TestInvoker.test_call_exception_bareÏ  s  øè è € å(Ñ*Ô*ˆGÝ˜'Ñ"Ô"Ð"Ý!™œˆIð ð  ð  ð  ð  ð #*×"2Ò"2°6Ð;SÑ"TÔ"TÐTÐTˆMð1Ø—l’lÐ#;Ñ<Ô<Ð<Ð<Ð<Ø—	’	‘”��øÝð ;ð ;ð ;Ø×%Ò% aÕ)9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:øøøøð;øøøð $×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0ø�m×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0øøøs0   Á+A9 Á8C Á9
B(ÂB#ÂC Â#B(Â(C ÃCN)r   r€   r�   r   rk  rq  r€  r‰  r˜  r¦  r­  r±  r»  r¾  rx   r7   r5   rd  rd  Å  s(  € € € € € Ø	ð
	&ð 
	&ñ 
Œð
	&ð 
ð	<ð 	<ñ 
Œð	<ð 
ð	<ð 	<ñ 
Œð	<ðB 
ð	7ð 	7ñ 
Œð	7ð@ 
ð 	;ð  	;ñ 
Œð 	;ðD 
ð0	Bð 0	Bñ 
Œð0	Bðd 
ð	1ð 	1ñ 
Œð	1ð> 
ð	:ð 	:ñ 
Œð	:ð@ 
ð	1ð 	1ñ 
Œð	1ð$ 
ð	1ð 	1ñ 
Œð	1ð 	1ð 	1r7   rd  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestAuthenticatorc                 óv  — t          t          j        ¦   «         ¦  «        }t          ddd¬¦  «        }t          ddd¬¦  «        }|                     |¦  «         |                      t          ¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   dt          |j        ¦  «        v sJ ‚d S )NÚwampcraÚaliceÚp4ssw0rd)ÚauthidÚsecretÚbobÚ
password42Úauthids)	r   rœ   r�   r   Úadd_authenticatorrJ  Ú
ValueErrorrL  rM  )r1   r¢   Úauth0Úauth1rO  s        r5   Útest_inconsistent_authidsz+TestAuthenticator.test_inconsistent_authidsó  s  € Ý�dœi™kœkÑ*Ô*ˆGÝ(ØØØ!ðñ ô ˆEõ
 )ØØØ#ðñ ô ˆEð ×%Ò% eÑ,Ô,Ð,Ø×"Ò"¥:Ñ.Ô.ð 1°#Ø×)Ò)¨%Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1à¥ C¤MÑ 2Ô 2Ð2Ð2Ð2Ð2Ð2Ð2s   Á4BÂBÂBc                 ó,  — t          t          j        ¦   «         ¦  «        } G d„ dt          ¦  «        } |¦   «         }dddœ|_        i |_         |¦   «         }dddœ|_        i |_        |                     |¦  «         |                     |¦  «         d S )Nc                   ó   — e Zd ZdZd„ Zd„ ZdS )úDTestAuthenticator.test_two_authenticators.<locals>.TestAuthenticatorÚtestc                 ó   — t           ‚r9   ©ÚNotImplementedError©r1   r¢   Ú	challenges      r5   Úon_challengezQTestAuthenticator.test_two_authenticators.<locals>.TestAuthenticator.on_challenge  ó   € Ý-Ð-r7   c                 ó   — t           ‚r9   rÔ  ©r1   Ú	authextras     r5   Ú
on_welcomezOTestAuthenticator.test_two_authenticators.<locals>.TestAuthenticator.on_welcome  rÙ  r7   N©r   r€   r�   ÚnamerØ  rÝ  rx   r7   r5   rÀ  rÑ    ó7   € € € € € à�ð.ð .ð .ð.ð .ð .ð .ð .r7   rÀ  Úvalue0Úvalue1r±   Úwhat)rK   Úqux)r   rœ   r�   r   rÜ  Ú_argsrÊ  )r1   r¢   rÀ  rÌ  rÍ  s        r5   Útest_two_authenticatorsz)TestAuthenticator.test_two_authenticators  sÅ   € Ý�dœi™kœkÑ*Ô*ˆGð.ð .ð .ð .ð .¥Nñ .ô .ð .ð &Ð%Ñ'Ô'ˆEàØðð ˆEŒOð ˆEŒKà%Ð%Ñ'Ô'ˆEàØðð ˆEŒOð ˆEŒKà×%Ò% eÑ,Ô,Ð,Ø×%Ò% eÑ,Ô,Ð,Ð,Ð,r7   c                 óÞ  — t          t          j        ¦   «         ¦  «        } G d„ dt          ¦  «        } |¦   «         }dddœ|_        i |_         |¦   «         }ddi|_        i |_        |                     |¦  «         |                      t          ¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         d S )Nc                   ó   — e Zd ZdZd„ Zd„ ZdS )úHTestAuthenticator.test_inconsistent_authextra.<locals>.TestAuthenticatorrÒ  c                 ó   — t           ‚r9   rÔ  rÖ  s      r5   rØ  zUTestAuthenticator.test_inconsistent_authextra.<locals>.TestAuthenticator.on_challenge*  rÙ  r7   c                 ó   — t           ‚r9   rÔ  rÛ  s     r5   rÝ  zSTestAuthenticator.test_inconsistent_authextra.<locals>.TestAuthenticator.on_welcome-  rÙ  r7   NrÞ  rx   r7   r5   rÀ  ré  &  rà  r7   rÀ  rá  râ  r±   rN   zInconsistent authextra)r   rœ   r�   r   rÜ  rå  rÊ  rJ  rË  rK  rL  rM  )r1   r¢   rÀ  rÌ  rÍ  rO  s         r5   Útest_inconsistent_authextraz-TestAuthenticator.test_inconsistent_authextra#  sD  € Ý�dœi™kœkÑ*Ô*ˆGð.ð .ð .ð .ð .¥Nñ .ô .ð .ð &Ð%Ñ'Ô'ˆEàØðð ˆEŒOð ˆEŒKà%Ð%Ñ'Ô'ˆEà�xðˆEŒOð ˆEŒKà×%Ò% eÑ,Ô,Ð,Ø×"Ò"¥:Ñ.Ô.ð 1°#Ø×)Ò)¨%Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1à�MŠMÐ2µC¸¼Ñ4FÔ4FÑGÔGÐGÐGÐGs   ÂB:Â:B>ÃB>N)r   r€   r�   rÎ  ræ  rì  rx   r7   r5   rÀ  rÀ  ñ  sF   € € € € € ð	3ð 	3ð 	3ð$	-ð 	-ð 	-ð<	Hð 	Hð 	Hð 	Hð 	Hr7   rÀ  )0ÚosÚunittest.mockrœ   ÚenvironÚgetÚtwisted.internet.deferr   r   r   r   r   r	   Útwisted.trialr
   rG  Úautobahnr   Úautobahn.twisted.wampr   r   Úautobahn.wampr   r   r   r   r   r   Úautobahn.wamp.requestr   Úautobahn.wamp.exceptionr   r   r   r   Úautobahn.wamp.authr   Úautobahn.wamp.interfacesr   Úautobahn.wamp.typesr   Úobjectr   ÚTestCaserƒ   rŽ   r­   rd  rÀ  rx   r7   r5   ú<module>rý     sÕ  ðð6 
€	€	€	Ø Ð Ð Ð Ð Ð à„:‡>‚>�- Ñ'Ô'ð bHàMÐMÐMÐMÐMÐMÐMÐMÐMÐMØBÐBÐBÐBÐBÐBÐBÐBÐBÐBØ&Ð&Ð&Ð&Ð&Ð&Ø€N€N€NàÐÐÐÐÐØ8Ð8Ð8Ð8Ð8Ð8Ø-Ð-Ð-Ð-Ð-Ð-ØQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQØ1Ð1Ð1Ð1Ð1Ð1ØGÐGÐGÐGÐGÐGÐGÐGØAÐAÐAÐAÐAÐAÐAÐAØ7Ð7Ð7Ð7Ð7Ð7Ø7Ð7Ð7Ð7Ð7Ð7Ø4Ð4Ð4Ð4Ð4Ð4ðzð zð zð zð z˜ñ zô zð zðx,ð ,ð ,ð ,ð ,�HÔ%ñ ,ô ,ð ,ð$'Gð 'Gð 'Gð 'Gð 'G Ô 1ñ 'Gô 'Gð 'GðR\Að \Að \Að \Að \A˜Ô)ñ \Aô \Að \Að|Z1ð Z1ð Z1ð Z1ð Z1�hÔ'ñ Z1ô Z1ð Z1ðX	OHð OHð OHð OHð OH˜HÔ-ñ OHô OHð OHð OHð OHðgbHð bHr7   