
    af                        d dl mZ d dl mZ d dlmZmZ d dl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 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 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 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 G d/ d0ej	                  Z G d1 d2ej	                  ZdS )3    )role)message)ProtocolErrorInvalidUriErrorNc                       e Zd ZdS )FooN)__name__
__module____qualname__     V/var/www/html/env/lib/python3.11/site-packages/autobahn/wamp/test/test_wamp_message.pyr   r   "   s        Dr   r   c                       e Zd Zd Zd ZdS )TestIdsc                 `    dD ]*}|                      |t          j        |                     +d S )N)r         i l          )assertEqualr   check_or_raise_idselfvals     r   test_valid_idszTestIds.test_valid_ids(   sC    7 	B 	BCS'";C"@"@AAAA	B 	Br   c                     ddd dddddt                      dd	g i fD ](}|                     t          t          j        |           )d S )
Nl       r      abc abcg?FT)r   assertRaisesr   r   r   r   s     r   test_invalid_idszTestIds.test_invalid_ids,   sa    )4fb%ceeUZ\`bdfhi 	M 	MCmW-FLLLL	M 	Mr   N)r	   r
   r   r   r    r   r   r   r   r   &   s:        B B BM M M M Mr   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestUrisc                 `    dD ]*}|                      |t          j        |                     +d S )N)	com.myapp.topic1com.myapp.product.123com.myapp.product.1.deleteCom-star.MyApp.**+$for   Îºá½¹ÏÎ¼Îµhello$world   helloÂ¢world   helloâ¬world   helloð¤­¢worldr   r   check_or_raise_urir   us     r   test_valid_uris_loose_nonemptyz'TestUris.test_valid_uris_loose_nonempty3   sC    	 
	? 
	?A Q :1 = =>>>>
	? 
	?r   c                     dd ddddt                      dddd	d
ddddfD ](}|                     t          t          j        |           )d S )Nr   TF皙?r   r   .com.com..productcom.my app.productcom.my	app.productcom.my
app.productcom.myapp.product#com.#.productr   r   r   r   r.   r/   s     r    test_invalid_uris_loose_nonemptyz)TestUris.test_invalid_uris_loose_nonempty@   su    %% &''&! 	N 	NA" ow/I1MMMM#	N 	Nr   c                 d    dD ],}|                      |t          j        |d                     -d S )N)r$   com.myapp..123com.myapp.product.1.r5   r4   r   Com-star.MyApp.**+$for..foo   Îºá½¹ÏÎ¼Îµ..foohello$world..foo   helloÂ¢world..foo   helloâ¬world..foo   helloð¤­¢world..fooTallow_empty_componentsr-   r/   s     r   test_valid_uris_loose_emptyz$TestUris.test_valid_uris_loose_emptyT   sM     	\ 	\A Q :1UY Z Z Z[[[[	\ 	\r   c                     dd ddddt                      dddd	d
fD ]*}|                     t          t          j        |d           +d S )Nr   TFr3   r   r7   r8   r9   r:   r;   rG   r<   r/   s     r   test_invalid_uris_loose_emptyz&TestUris.test_invalid_uris_loose_emptyd   so    %%&''&! 	k 	kA ow/I1eijjjj	k 	kr   c                 d    dD ],}|                      |t          j        |d                     -d S )N)r$   r%   r&   Tstrictr-   r/   s     r   test_valid_uris_strict_nonemptyz(TestUris.test_valid_uris_strict_nonemptyt   sL     	L 	LA Q :1T J J JKKKK		L 	Lr   c                     dd ddddt                      dddd	d
ddddddddddfD ]*}|                     t          t          j        |d           +d S )Nr   TFr3   r   r   r4   r5   r6   r7   r8   r9   r:   r;   r'   r(   r)   r*   r+   r,   rM   r<   r/   s     r   !test_invalid_uris_strict_nonemptyz*TestUris.test_invalid_uris_strict_nonempty{   s    %% &''&!*@"&*.+ 	[ 	[A. ow/I1UYZZZZ/	[ 	[r   c           	      f    dD ]-}|                      |t          j        |dd                     .d S )N)r$   r?   r@   r5   r4   r   TrN   rH   r-   r/   s     r   test_valid_uris_strict_emptyz%TestUris.test_valid_uris_strict_empty   sO     	i 	iA Q :1Tbf g g ghhhh	i 	ir   c                     dd ddddt                      dddd	d
ddddddfD ]+}|                     t          t          j        |dd           ,d S )Nr   TFr3   r   r7   r8   r9   r:   r;   rA   rB   rC   rD   rE   rF   rS   r<   r/   s     r   test_invalid_uris_strict_emptyz'TestUris.test_invalid_uris_strict_empty   s    %%&''&!/E'+/3# 	x 	xA& ow/I1UYrvwwww'	x 	xr   N)r	   r
   r   r1   r=   rI   rK   rO   rQ   rT   rV   r   r   r   r"   r"   1   s        ? ? ?N N N(\ \ \ k k k L L L[ [ [4i i ix x x x xr   r"   c                       e Zd Zd Zd ZdS )TestErrorMessagec           	         t          j        t           j        j        dd          }|                                }|                     t          |          d           |                     |d         t           j        j                   |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           t          j        t           j        j        ddg d	d
dd          }|                                }|                     t          |          d           |                     |d         t           j        j                   |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           |                     |d         g d	           |                     |d         d
dd           d S )N@ com.myapp.error1   r   r            r   r]   r^   r   hellofoobarargskwargs      )r   ErrorCallMESSAGE_TYPEmarshalr   lenr   emsgs      r   	test_ctorzTestErrorMessage.test_ctor   s   M',3V=OPPiikkS1%%%Q!;<<<Q!:;;;Q(((Q$$$Q!3444M',3V=OV_V_V_pr  |C  iD  iD  E  E  EiikkS1%%%Q!;<<<Q!:;;;Q(((Q$$$Q!3444Q+++QG!<!<=====r   c           	         t           j        j        t           j        j        di dg}t           j                            |          }|                     |t           j                   |                     |j        t           j        j                   |                     |j        d           |                     |j	        d           |                     |j
        d            |                     |j        d            |                     |                                |           t           j        j        t           j        j        di dg ddddg}t           j                            |          }|                     |t           j                   |                     |j        t           j        j                   |                     |j        d           |                     |j	        d           |                     |j
        g d           |                     |j        ddd           |                     |                                |           d S )NrZ   r[   r`   r   ra   rb   )r   rj   rl   rk   parseassertIsInstancer   request_typerequesterrorrf   rg   rm   r   wmsgrq   s      r   test_parse_and_marshalz'TestErrorMessage.test_parse_and_marshal   s   *GL,EvrSefm!!$''c7=111)7<+DEEEf---$67774(((T***---*GL,EvrSegpgpgpz|  FM  sN  sN  Om!!$''c7=111)7<+DEEEf---$6777999---R%@%@AAA-----r   Nr	   r
   r   rr   r{   r   r   r   rX   rX      s2        > > >*. . . . .r   rX   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSubscribeMessagec                 X   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           t          j        ddt           j        j                  }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d	d
i           |                     |d         d           d S )NrZ   r$   r_   r   r   r]   r^   matchr   prefix)r   	Subscriberm   r   rn   rl   MATCH_PREFIXro   s      r   rr   zTestSubscribeMessage.test_ctor   sn   f&899iikkS1%%%Q!2!?@@@Q(((Q$$$Q!3444f&8@Q@^___iikkS1%%%Q!2!?@@@Q(((Q'8!4555Q!344444r   c                 z   t           j        j        di dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        t           j        j	                   |                     |
                                |           t           j        j        dddidg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        t           j        j                   |                     |
                                |           d S )NrZ   r$   r   r   )r   r   rl   rt   ru   r   rw   topicr   MATCH_EXACTrm   r   ry   s      r   r{   z+TestSubscribeMessage.test_parse_and_marshal   so   !.<NO%%d++c7#4555f---$6777G$5$ABBB---!.(8KM_`%%d++c7#4555f---$6777G$5$BCCC-----r   c                 .   t           j        j        dddidg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            | 	                    |j        d           |                     |j
        t           j        j                   |                     |                                |           d S )NrZ   r   r   r$   Tr   r   rl   rt   ru   r   rw   r   get_retainedassertNotEqualr   r   rm   ry   s      r   test_get_retained_default_falsez4TestSubscribeMessage.test_get_retained_default_false  s    !.(8KM_`%%d++c7#4555f---$6777)4000C,d333G$5$BCCC-----r   c                 0   t           j        j        dddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           | 	                    |j        d           |                     |j
        t           j        j                   |                     |                                |           d S )NrZ   r   Fr   r   r$   Tr   ry   s      r    test_get_retained_explicit_falsez5TestSubscribeMessage.test_get_retained_explicit_false  s    !.(\a8b8bdvw%%d++c7#4555f---$6777)5111C,d333G$5$BCCC-----r   c                    t           j        j        dddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           |                     |j	        t           j        j
                   |                     |                                |           d S )NrZ   r   Tr   r$   )r   r   rl   rt   ru   r   rw   r   r   r   r   rm   ry   s      r   test_get_retained_explicit_truez4TestSubscribeMessage.test_get_retained_explicit_true  s    !.(\`8a8acuv%%d++c7#4555f---$6777)4000G$5$BCCC-----r   N)r	   r
   r   rr   r{   r   r   r   r   r   r   r~   r~      s_        5 5 5". . ."	. 	. 	.	. 	. 	.. . . . .r   r~   c                       e Zd Zd Zd ZdS )TestSubscribedMessagec                 d   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           d S NrZ   
 r^   r   r   r]   )r   
Subscribedrm   r   rn   rl   ro   s      r   rr   zTestSubscribedMessage.test_ctor*      vv..iikkS1%%%Q!3!@AAAQ(((Q(((((r   c                 h   t           j        j        ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S NrZ   r   )	r   r   rl   rt   ru   r   rw   subscriptionrm   ry   s      r   r{   z,TestSubscribedMessage.test_parse_and_marshal2      "/@ &&t,,c7#5666f---)6222-----r   Nr|   r   r   r   r   r   (  2        ) ) ). . . . .r   r   c                       e Zd Zd Zd ZdS )TestUnsubscribeMessagec                 d   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           d S r   )r   Unsubscriberm   r   rn   rl   ro   s      r   rr   z TestUnsubscribeMessage.test_ctor=  s    //iikkS1%%%Q!4!ABBBQ(((Q(((((r   c                 h   t           j        j        ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S r   )	r   r   rl   rt   ru   r   rw   r   rm   ry   s      r   r{   z-TestUnsubscribeMessage.test_parse_and_marshalE  s    #0&&A!''--c7#6777f---)6222-----r   Nr|   r   r   r   r   r   ;  r   r   r   c                       e Zd Zd Zd ZdS )TestUnsubscribedMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi           t          j        ddd	          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddd	           d S )
NrZ   r]   r   r   )r   r^   r   wamp.subscription.revokedr   reason)r   Unsubscribedrm   r   rn   rl   ro   s      r   rr   z!TestUnsubscribedMessage.test_ctorP      ((iikkS1%%%Q!5!BCCCQ((( 888iikkS1%%%Q!5!BCCCQ###Q.&!9::: @[\\\iikkS1%%%Q!5!BCCCQ###Q&D_!`!`aaaaar   c                    t           j        j        dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |	                                |           t           j        j        dddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |	                                |           t           j        j        ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           |                     |	                                |           d S )NrZ   r   r   r   r   )
r   r   rl   rt   ru   r   rw   r   r   rm   ry   s      r   r{   z.TestUnsubscribedMessage.test_parse_and_marshale     $16:"((..c7#7888f---)4000T***---$11~v6NO"((..c7#7888a((()6222T***---$11vYt6u6uv"((..c7#7888a((()6222%@AAA-----r   Nr|   r   r   r   r   r   N  5        b b b*. . . . .r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestPublishMessagec                 n   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           t          j        ddg dd	d
d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           |                     |d         g d           |                     |d         d	d
d           t          j        ddddgg d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddgg dd           |                     |d         d           d S )NrZ   r$   r_   r   r   r]   r^   r`   r   ra   rb   re   ri   r\   F,  d      r   
exclude_meexcludeeligible)r   Publishrm   r   rn   rl   ro   s      r   rr   zTestPublishMessage.test_ctor  s   OF$677iikkS1%%%Q!=>>>Q(((Q$$$Q!3444OF$6YYYWYbiOjOjkkkiikkS1%%%Q!=>>>Q(((Q$$$Q!3444Q+++QG!<!<===OF$65SVRWbqbqbqrrriikkS1%%%Q!=>>>Q(((Q3%UdUdUd!e!efffQ!344444r   c                    t           j        j        di dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d            |                     |j        d            |                     |j        d            |                     |                                |           t           j        j        di dg ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        g d           |                     |j	        ddd           |                     |j
        d            |                     |j        d            |                     |j        d            |                     |                                |           t           j        j        dddgg d	d
dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d           |                     |j        dg           |                     |j        g d	           |                     |                                |           d S )NrZ   r$   r`   r   ra   rb   Fr   r   r   )r   r   rl   rt   ru   r   rw   r   rf   rg   r   r   r   rm   ry   s      r   r{   z)TestPublishMessage.test_parse_and_marshal  s`   ,fb:LMo##D))c7?333f---$67774(((T***...d+++t,,,---,fb:LiiiaclsYtYtuo##D))c7?333f---$6777999---R%@%@AAA...d+++t,,,---,fUX[W\jyjyjy6z6z  }O  Po##D))c7?333f---$67774(((T***///se,,,777-----r   c                 x   t           j        j        dddgg dddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           dS )	zD
        Retain, when not specified, is False-y by default.
        rZ   Fr   r   r   r$   NT	r   r   rl   rt   ru   r   retainassertIsNotrm   ry   s      r   test_retain_default_falsez,TestPublishMessage.test_retain_default_false  s     ,fUX[W\jyjyjy6z6z  }O  Po##D))c7?333T***T***-----r   c                 z   t           j        j        ddddgg dddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           dS )	zK
        Retain, when specified as False, shows up in the message.
        rZ   Fr   r   r   r   r   r   r$   TNr   ry   s      r   test_retain_explicit_falsez-TestPublishMessage.test_retain_explicit_false  s     ,fUV[ilhm  |K  |K  |K  7L  7L  N`  ao##D))c7?333U+++T***-----r   c                 z   t           j        j        ddddgg dddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           dS )	zJ
        Retain, when specified as True, shows up in the message.
        rZ   FTr   r   r   r$   N)	r   r   rl   rt   ru   r   r   assertIsrm   ry   s      r   test_retain_explicit_truez,TestPublishMessage.test_retain_explicit_true  s     ,fUVZhkgl  {J  {J  {J  7K  7K  M_  `o##D))c7?333T***cj$'''-----r   N)r	   r
   r   rr   r{   r   r   r   r   r   r   r   r     s`        5 5 56#. #. #.J	. 	. 	.	. 	. 	.	. 	. 	. 	. 	.r   r   c                       e Zd Zd Zd ZdS )TestPublishedMessagec                 d   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           d S r   )r   	Publishedrm   r   rn   rl   ro   s      r   rr   zTestPublishedMessage.test_ctor  s    ff--iikkS1%%%Q!2!?@@@Q(((Q(((((r   c                 h   t           j        j        ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S r   )	r   r   rl   rt   ru   r   rw   publicationrm   ry   s      r   r{   z+TestPublishedMessage.test_parse_and_marshal  s    !.?%%d++c7#4555f---&111-----r   Nr|   r   r   r   r   r     r   r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestEventMessagec                 Z   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         i            t          j        ddg dd	d
d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         i            |                     |d         g d           |                     |d         d	d
d           t          j        ddd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         ddi           d S )NrZ   r   r_   r   r   r]   r^   r`   r   ra   rb   re   ri   r\   r   )	publisherr   )r   Eventrm   r   rn   rl   ro   s      r   rr   zTestEventMessage.test_ctor  s[   M&&))iikkS1%%%Q!;<<<Q(((Q(((Q$$$M&&yyyT[A\A\]]]iikkS1%%%Q!;<<<Q(((Q(((Q$$$Q+++QG!<!<===M&&C888iikkS1%%%Q!;<<<Q(((Q(((Q+s!344444r   c                 4   t           j        j        ddi g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d            |                     |                                |           t           j        j        ddi g ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        g d           |                     |j	        ddd           |                     |j
        d            |                     |                                |           t           j        j        ddddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d           |                     |                                |           d S )	NrZ   r   r`   r   ra   rb   r   r   )r   r   rl   rt   ru   r   r   r   rf   rg   r   rm   ry   s      r   r{   z'TestEventMessage.test_parse_and_marshal  s   *FFB?m!!$''c7=111)6222&1114(((T***------*FFB			SU^eKfKfgm!!$''c7=111)6222&111999---R%@%@AAA------*FF[#<NOm!!$''c7=111)6222&1114(((T***,,,-----r   c                 j   t           j        j        ddi g}t           j                            |          }|                     |t           j                   |                     |j        d            |                     |j        d           |                     |                                |           d S )NrZ   r   T	r   r   rl   rt   ru   r   retainedr   rm   ry   s      r   test_retained_default_falsez,TestEventMessage.test_retained_default_false2  s    *FFB?m!!$''c7=111t,,,CL$///-----r   c                 n   t           j        j        ddddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S )NrZ   r   r   FTr   ry   s      r   test_retained_explicit_falsez-TestEventMessage.test_retained_explicit_false:  s    *FFZ<OPm!!$''c7=111u---CL$///-----r   c                 8   t           j        j        ddddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |                                |           d S )NrZ   r   r   T)r   r   rl   rt   ru   r   r   rm   ry   s      r   test_retained_explicit_truez,TestEventMessage.test_retained_explicit_trueB  s    *FFZ<NOm!!$''c7=111t,,,-----r   N)r	   r
   r   rr   r{   r   r   r   r   r   r   r   r     s_        5 5 56. . .>. . .. . .. . . . .r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestRegisterMessagec                 :   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           t          j        ddd	          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d
di           |                     |d         d           d S )NrZ   com.myapp.procedure1r_   r   r   r]   r^   wildcardr   r   )r   Registerrm   r   rn   rl   ro   s      r   rr   zTestRegisterMessage.test_ctorL  sh   V%;<<iikkS1%%%Q!1!>???Q(((Q$$$Q!7888V%;:NNNiikkS1%%%Q!1!>???Q(((Q':!6777Q!788888r   c                     t          j        ddd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d	di           |                     |d
         d           t           j                            |          }t          |           d S )NrZ   r   T)force_reregisterr_   r   r   r]   r   r^   )r   r   rm   r   rn   rl   rt   str)r   rp   rq   e2s       r   test_ctor_reregisterz(TestRegisterMessage.test_ctor_reregister]  s    V%;dSSSiikkS1%%%Q!1!>???Q(((Q"4d!;<<<Q!7888##C((Br   c                 &   t           j        j        dddidg}|                     t                    5 }t           j                            |           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )NrZ   r   truthyr   zinvalid type)	r   r   rl   r   r   rt   assertInr   	exception)r   rq   ctxs      r   #test_parse_reregister_illegal_forcez7TestRegisterMessage.test_parse_reregister_illegal_forcei  s    )*"	
 }-- 	(""3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(nc#-&8&899999s    AA"%A"c                 >   t           j        j        di dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           |                     |	                                |           t           j        j        dddidg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           |                     |	                                |           d S )NrZ   r   exactr   r   )
r   r   rl   rt   ru   r   rw   	procedurer   rm   ry   s      r   r{   z*TestRegisterMessage.test_parse_and_marshalu  sc    -vr;QR$$T**c7#3444f---(>???G,,,--- -v7LNde$$T**c7#3444f---(>???J///-----r   N)r	   r
   r   rr   r   r   r{   r   r   r   r   r   J  sP        9 9 9"
 
 

: 
: 
:. . . . .r   r   c                       e Zd Zd Zd ZdS )TestRegisteredMessagec                 d   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           d S r   )r   
Registeredrm   r   rn   rl   ro   s      r   rr   zTestRegisteredMessage.test_ctor  r   r   c                 h   t           j        j        ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S r   )	r   r   rl   rt   ru   r   rw   registrationrm   ry   s      r   r{   z,TestRegisteredMessage.test_parse_and_marshal  r   r   Nr|   r   r   r   r   r     r   r   r   c                       e Zd Zd Zd ZdS )TestUnregisterMessagec                 d   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           d S r   )r   
Unregisterrm   r   rn   rl   ro   s      r   rr   zTestUnregisterMessage.test_ctor  r   r   c                 h   t           j        j        ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |                                |           d S r   )	r   r   rl   rt   ru   r   rw   r   rm   ry   s      r   r{   z,TestUnregisterMessage.test_parse_and_marshal  r   r   Nr|   r   r   r   r   r     r   r   r   c                       e Zd Zd Zd ZdS )TestUnregisteredMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi           t          j        ddd	          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddd	           d S )
NrZ   r]   r   r   )r   r^   r   wamp.registration.revokedr   r   )r   Unregisteredrm   r   rn   rl   ro   s      r   rr   z!TestUnregisteredMessage.test_ctor  r   r   c                    t           j        j        dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |	                                |           t           j        j        dddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |	                                |           t           j        j        ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d           |                     |	                                |           d S )NrZ   r   r   r   r   )
r   r   rl   rt   ru   r   rw   r   r   rm   ry   s      r   r{   z.TestUnregisteredMessage.test_parse_and_marshal  r   r   Nr|   r   r   r   r   r     r   r   r   c                       e Zd Zd Zd ZdS )TestCallMessagec                 Z   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           t          j        ddg dd	d
d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         d           |                     |d         g d           |                     |d         d	d
d           t          j        ddd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi           |                     |d         d           d S )NrZ   r   r_   r   r   r]   r^   r`   r   ra   rb   re   ri   r\   '  timeoutr  )r   rk   rm   r   rn   rl   ro   s      r   rr   zTestCallMessage.test_ctor  sb   L!788iikkS1%%%Q!:;;;Q(((Q$$$Q!7888L!7iiiXZcjPkPkllliikkS1%%%Q!:;;;Q(((Q$$$Q!7888Q+++QG!<!<===L!7GGGiikkS1%%%Q!:;;;Q(((Q)U!3444Q!788888r   c                 4   t           j        j        di dg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d            |                     |                                |           t           j        j        di dg ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        g d           |                     |j	        ddd           |                     |j
        d            |                     |                                |           t           j        j        dddidg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d           |                     |                                |           d S )	NrZ   r   r`   r   ra   rb   r  r  )r   rk   rl   rt   ru   r   rw   r   rf   rg   r  rm   ry   s      r   r{   z&TestCallMessage.test_parse_and_marshal  s   )627MNl  &&c7<000f---(>???4(((T***d+++---)627MyyybdmtZuZuvl  &&c7<000f---(>???999---R%@%@AAAd+++---)6Iu3EG]^l  &&c7<000f---(>???4(((T***e,,,-----r   Nr|   r   r   r   r  r    s2        9 9 96. . . . .r   r  c                       e Zd Zd Zd ZdS )TestCancelMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            t          j        dt           j        j                  }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         dt           j        j        i           d S NrZ   r^   r   r   r]   )moder  )r   Cancelrm   r   rn   rl   KILLro   s      r   rr   zTestCancelMessage.test_ctor  s2   N6""iikkS1%%%Q!<===Q(((Q$$$N6(;<<<iikkS1%%%Q!<===Q(((Q&'.*=!>?????r   c                 
   t           j        j        di g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |                                |           t           j        j        ddt           j        j	        ig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        t           j        j	                   |                     |                                |           d S NrZ   r  )
r   r  rl   rt   ru   r   rw   r  rm   r  ry   s      r   r{   z(TestCancelMessage.test_parse_and_marshal,  s/   +VR8n""4((c7>222f---4(((---+Vfgn>Q5RSn""4((c7>222f---7>#6777-----r   Nr|   r   r   r   r  r    s5        @ @ @. . . . .r   r  c                       e Zd Zd Zd ZdS )TestResultMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            t          j        dg dddd	
          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         g d           |                     |d         ddd	           t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi           d S NrZ   r^   r   r   r]   r`   r   ra   rb   re   r\   r_   T)progressr  )r   Resultrm   r   rn   rl   ro   s      r   rr   zTestResultMessage.test_ctor>  s   N6""iikkS1%%%Q!<===Q(((Q$$$N6			"W:U:UVVViikkS1%%%Q!<===Q(((Q$$$Q+++QG!<!<===N6D111iikkS1%%%Q!<===Q(((Q*d!344444r   c                    t           j        j        di g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |j	        d            |                     |
                                |           t           j        j        di g ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        g d           |                     |j        ddd           |                     |j	        d            |                     |
                                |           t           j        j        dddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |j	        d           |                     |
                                |           d S NrZ   r`   r   ra   rb   r  T)r   r  rl   rt   ru   r   rw   rf   rg   r  rm   ry   s      r   r{   z(TestResultMessage.test_parse_and_marshalV  s^   +VR8n""4((c7>222f---4(((T***t,,,---+VRBW^D_D_`n""4((c7>222f---999---R%@%@AAAt,,,---+Vj$5GHn""4((c7>222f---4(((T***t,,,-----r   Nr|   r   r   r   r  r  <  2        5 5 50. . . . .r   r  c                       e Zd Zd Zd ZdS )TestInvocationMessagec                 Z   t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         i            t          j        ddg dd	d
d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         i            |                     |d         g d           |                     |d         d	d
d           t          j        ddd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         d           |                     |d         ddi           d S )NrZ   r   r_   r   r   r]   r^   r`   r   ra   rb   re   ri   r\   r  r  r  )r   
Invocationrm   r   rn   rl   ro   s      r   rr   zTestInvocationMessage.test_ctoru  sa   vv..iikkS1%%%Q!3!@AAAQ(((Q(((Q$$$vvIIIbY`FaFabbbiikkS1%%%Q!3!@AAAQ(((Q(((Q$$$Q+++QG!<!<===vvu===iikkS1%%%Q!3!@AAAQ(((Q(((Q)U!344444r   c                 4   t           j        j        ddi g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d            |                     |                                |           t           j        j        ddi g ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        g d           |                     |j	        ddd           |                     |j
        d            |                     |                                |           t           j        j        ddddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d           |                     |                                |           d S )	NrZ   r   r`   r   ra   rb   r  r  )r   r  rl   rt   ru   r   rw   r   rf   rg   r  rm   ry   s      r   r{   z,TestInvocationMessage.test_parse_and_marshal  s   "/D &&t,,c7#5666f---)62224(((T***d+++---"/YYYXZcjPkPkl &&t,,c7#5666f---)6222999---R%@%@AAAd+++---"/)UAST &&t,,c7#5666f---)62224(((T***e,,,-----r   Nr|   r   r   r   r  r  s  s2        5 5 56. . . . .r   r  c                       e Zd Zd Zd ZdS )TestInterruptMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            t          j        dt           j        j                  }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         dt           j        j        i           d S r
  )r   	Interruptrm   r   rn   rl   r  ro   s      r   rr   zTestInterruptMessage.test_ctor  s8   f%%iikkS1%%%Q!2!?@@@Q(((Q$$$f7+<+ABBBiikkS1%%%Q!2!?@@@Q(((Q&'*;*@!ABBBBBr   c                 
   t           j        j        di g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |                                |           t           j        j        ddt           j        j	        ig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        t           j        j	                   |                     |                                |           d S r  )
r   r!  rl   rt   ru   r   rw   r  rm   r  ry   s      r   r{   z+TestInterruptMessage.test_parse_and_marshal  s7   !.;%%d++c7#4555f---4(((---!.ARAW8XY%%d++c7#4555f---7#4#9:::-----r   Nr|   r   r   r   r  r    s5        C C C. . . . .r   r  c                       e Zd Zd Zd ZdS )TestYieldMessagec                    t          j        d          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            t          j        dg dddd	
          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         i            |                     |d         g d           |                     |d         ddd	           t          j        dd          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi           d S r  )r   Yieldrm   r   rn   rl   ro   s      r   rr   zTestYieldMessage.test_ctor  s   M&!!iikkS1%%%Q!;<<<Q(((Q$$$M&yyyG9T9TUUUiikkS1%%%Q!;<<<Q(((Q$$$Q+++QG!<!<===M&4000iikkS1%%%Q!;<<<Q(((Q*d!344444r   c                    t           j        j        di g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |j	        d            |                     |
                                |           t           j        j        di g ddddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        g d           |                     |j        ddd           |                     |j	        d            |                     |
                                |           t           j        j        dddig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        d            |                     |j        d            |                     |j	        d           |                     |
                                |           d S r  )r   r&  rl   rt   ru   r   rw   rf   rg   r  rm   ry   s      r   r{   z'TestYieldMessage.test_parse_and_marshal  s^   *FB7m!!$''c7=111f---4(((T***t,,,---*FB			2V]C^C^_m!!$''c7=111f---999---R%@%@AAAt,,,---*FZ4FGm!!$''c7=111f---4(((T***t,,,-----r   Nr|   r   r   r   r$  r$    r  r   r$  c                        e Zd Zd Zd Zd ZdS )TestHelloMessagec                    t          j        ddt          j                    i          }|                                }|                     t          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddi ii           t          j        ddt          j        d	          i          }|                                }|                     t          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         ddd
ddiiii           t          j        ddt          j        d	          id          }|                                }|                     t          |          d           |                     |d         t           j        j                   |                     |d         d           |                     |d         dd
ddiiidd           d S )Nrealm1r   r^   r   r   r]   rolesTsubscriber_blackwhite_listingfeaturesr.  )	resumabler,  r0  )r   Hellor   RolePublisherFeaturesrm   r   rn   rl   ro   s      r   rr   zTestHelloMessage.test_ctor
  sK   M([$2L2N2N$OPPiikkS1%%%Q!;<<<Q***Q'K+<!=>>>M([$2Lko2p2p2p$qrriikkS1%%%Q!;<<<Q***Q'K*GfhlFm9n+o!pqqqM([$2Lko2p2p2p$q  ~B  C  C  CiikkS1%%%Q!;<<<Q***QK*GfhlFm9n+o  C  "D  "D  	E  	E  	E  	E  	Er   c                 h   t           j        j        dddi iig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        dt          j	                    i           |                     |j
        d            |                     |                                |           t           j        j        ddddddiiiig}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        dt          j	        d          i           |                     |                                |           t           j        j        ddi idd	g}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        dt          j	                    i           |                     |j
        d           |                     |                                |           t           j        j        ddi idd
ddg}t           j                            |          }|                     |t           j                   |                     |j        d           |                     |j        dt          j	                    i           |                     |j
        d           |                     |j        d
           |                     |j        d           |                     |                                |           d S )Nr+  r,  r   r/  r.  Tr-  Fr1  i  dsjgsg)r,  r0  zresume-sessionzresume-token)r   r2  rl   rt   ru   r   realmr,  r   r3  r0  rm   resume_sessionresume_tokenry   s      r   r{   z'TestHelloMessage.test_parse_and_marshal   sU   *Hwb@Q6RSm!!$''c7=111H---[$2L2N2N$OPPP------*Hwz\{  ~B  \C  OD  AE  7F  Gm!!$''c7=111H---[$2Lko2p2p2p$qrrr---*Hb@Q`e6f6fgm!!$''c7=111H---[$2L2N2N$OPPP...---*Hb@Q`dx|  OW  7X  7X  Ym!!$''c7=111H---[$2L2N2N$OPPP---+T222)8444-----r   c                     t          j        ddt          j                    i          }|                     t          |          t
                     d S )Nr+  r   )r   r2  r   r3  ru   r   r   rp   s     r   test_strzTestHelloMessage.test_strB  sC    M([$2L2N2N$OPPc!ffc*****r   Nr	   r
   r   rr   r{   r;  r   r   r   r)  r)    sE        E E E, .  .  .D+ + + + +r   r)  c                        e Zd Zd Zd Zd ZdS )TestGoodbyeMessagec                 H   d}d}t          j                    }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         i            |                     |d         t           j        j                   t          j        |          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         i            |                     |d         |           t          j        ||          }|                                }|                     t	          |          d           |                     |d         t           j        j                   |                     |d         d	|i           |                     |d         |           d S )
Nwamp.error.system_shutdownThe host is shutting down now.r^   r   r   r]   )r   r   r   r   )r   Goodbyerm   r   rn   rl   DEFAULT_REASON)r   r   
reason_msgrp   rq   s        r   rr   zTestGoodbyeMessage.test_ctorI  s   -5
OiikkS1%%%Q!=>>>Q$$$Q!?@@@O6***iikkS1%%%Q!=>>>Q$$$Q(((O6:>>>iikkS1%%%Q!=>>>Q)Z!8999Q(((((r   c                 N   d}d}t           j        j        g}|                     t          t           j        j        |           t           j        j        |g}|                     t          t           j        j        |           t           j        j        ddi|g}|                     t          t           j        j        |           t           j        j        i |g}t           j                            |          }|                     |t           j                   |                     |j        |           |                     |j         d            |                     |	                                |           t           j        j        d|i|g}t           j                            |          }|                     |t           j                   |                     |j        |           |                     |j         |           |                     |	                                |           d S )Nr@  rA  r   r   )
r   rC  rl   r   r   rt   ru   r   r   rm   )r   r   rE  rz   rq   s        r   r{   z)TestGoodbyeMessage.test_parse_and_marshalb  s   -5
,--)>EEE,f5-)>EEE,y#.>G-)>EEE,b&9o##D))c7?333V,,,d+++---,y*.EvNo##D))c7?333V,,,j111-----r   c                     t          j        dd          }|                     t          |          t                     d S )Nr@  rA  rB  )r   rC  ru   r   r:  s     r   r;  zTestGoodbyeMessage.test_str}  s:    O#?Iijjjc!ffc*****r   Nr<  r   r   r   r>  r>  G  sA        ) ) )2. . .6+ + + + +r   r>  ) autobahn.wampr   r   autobahn.wamp.exceptionr   r   unittestobjectr   TestCaser   r"   rX   r~   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r)  r>  r   r   r   <module>rM     s  6       ! ! ! ! ! ! B B B B B B B B 	 	 	 	 	& 	 	 	M M M M Mh M M MBx Bx Bx Bx Bxx  Bx Bx BxJ*. *. *. *. *.x( *. *. *.ZB. B. B. B. B.8, B. B. B.J. . . . .H- . . .&. . . . .X. . . .&.. .. .. .. ..h/ .. .. ..ba. a. a. a. a.* a. a. a.H. . . . .8, . . .&Q. Q. Q. Q. Q.x( Q. Q. Q.h:. :. :. :. :.(+ :. :. :.z. . . . .H- . . .&. . . . .H- . . .&.. .. .. .. ..h/ .. .. ..b:. :. :. :. :.h' :. :. :.z. . . . .) . . .B4. 4. 4. 4. 4.) 4. 4. 4.n:. :. :. :. :.H- :. :. :.z. . . . .8, . . .B4. 4. 4. 4. 4.x( 4. 4. 4.n<+ <+ <+ <+ <+x( <+ <+ <+~8+ 8+ 8+ 8+ 8+* 8+ 8+ 8+ 8+ 8+r   