ó
    ×›‘h±  ã                   ó   • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
   " S S\R                  5      r " S S	\R                  \	R                  5      r " S
 S\R                  5      r " S S\5      r " S S\5      rg)z,
Tests for L{twisted.words.xish.xmlstream}.
é    )Úprotocol)Úfailure)Úunittest)ÚdomishÚutilityÚ	xmlstreamc                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
ÚXmlStreamTestsé   c                 óÒ   • SU l         / U l        [        R                  " 5       U l        X R                  l        U R                  R
                  U R                  R                  l        g )Nz	no reason)ÚconnectionLostMsgÚoutlistr   Ú	XmlStreamÚ	transportÚappendÚwrite©Úselfs    ÚeC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/words/test/test_xmlstream.pyÚsetUpÚXmlStreamTests.setUp   sG   € Ø!,ˆÔØˆŒÜ"×,Ò,Ó.ˆŒØ#'�‰Ô Ø)-¯©×)<Ñ)<ˆ�‰× Ñ Õ&ó    c                 óˆ   • U R                   R                  [        R                  " [	        U R
                  5      5      5        g)z1
Stub loseConnection because we are a transport.
N)r   ÚconnectionLostr   ÚFailureÚ	Exceptionr   r   s    r   ÚloseConnectionÚXmlStreamTests.loseConnection   s-   € ð 	�‰×%Ñ%Ü�OŠOœI d×&<Ñ&<Ó=Ó>õ	
r   c                 ó¬   • U R                   R                  5         U R                   R                  S5        U R                  U R                  S   S5        g)zY
Calling L{xmlstream.XmlStream.send} results in the data being written
to the transport.
s   <root>r   N)r   ÚconnectionMadeÚsendÚassertEqualr   r   s    r   Ú	test_sendÚXmlStreamTests.test_send   s>   € ð
 	�‰×%Ñ%Ô'Ø�‰×Ñ˜IÔ&Ø×Ñ˜Ÿ™ a™¨)Õ4r   c                 ó
  ^• / mU4S jnU R                   R                  [         R                  U5        U R                   R                  5         U R                   R	                  S5        U R                  S[        T5      5        g)zE
Receiving the starttag of the root element results in stream start.
c                 ó(   >• TR                  S 5        g ©N©r   )ÚrootelemÚstreamStarteds    €r   ÚstreamStartEventÚ9XmlStreamTests.test_receiveRoot.<locals>.streamStartEvent.   s   ø€ Ø× Ñ  Õ&r   ú<root>é   N)r   ÚaddObserverÚSTREAM_START_EVENTr    ÚdataReceivedr"   Úlen)r   r+   r*   s     @r   Útest_receiveRootÚXmlStreamTests.test_receiveRoot(   sc   ø€ ð ˆõ	'ð 	�‰×"Ñ"¤9×#?Ñ#?ÐAQÔRØ�‰×%Ñ%Ô'Ø�‰×#Ñ# HÔ-Ø×Ñ˜œC Ó.Õ/r   c                 óª  ^^• / m/ mU4S jnU4S jnU R                   R                  [         R                  U5        U R                   R                  [         R                  U5        U R                   R	                  5         U R                   R                  S5        U R                  S[        T5      5        U R                  S[        T5      5        U R                   R                  S5        U R                  S[        T5      5        U R                  TS   R                  [        R                  5      5        U R                  S[        T5      5        g)z>
Receiving malformed XML results in an L{STREAM_ERROR_EVENT}.
c                 ó(   >• TR                  U 5        g r'   r(   )ÚreasonÚstreamErrors    €r   ÚstreamErrorEventÚ;XmlStreamTests.test_receiveBadXML.<locals>.streamErrorEvent=   s   ø€ Ø×Ñ˜vÕ&r   c                 ó(   >• TR                  S 5        g r'   r(   )Ú_Ú	streamEnds    €r   ÚstreamEndEventÚ9XmlStreamTests.test_receiveBadXML.<locals>.streamEndEvent@   s   ø€ Ø×Ñ˜TÕ"r   r-   r   z<child><unclosed></child>r.   N)r   r/   ÚSTREAM_ERROR_EVENTÚSTREAM_END_EVENTr    r1   r"   r2   Ú
assertTrueÚcheckr   ÚParserError)r   r9   r>   r=   r8   s      @@r   Útest_receiveBadXMLÚ!XmlStreamTests.test_receiveBadXML6   sø   ù€ ð ˆØˆ	õ	'õ	#ð 	�‰×"Ñ"¤9×#?Ñ#?ÐAQÔRØ�‰×"Ñ"¤9×#=Ñ#=¸~ÔNØ�‰×%Ñ%Ô'à�‰×#Ñ# HÔ-Ø×Ñ˜œC Ó,Ô-Ø×Ñ˜œC 	›NÔ+à�‰×#Ñ#Ð$?Ô@Ø×Ñ˜œC Ó,Ô-Ø�‰˜ A™×,Ñ,¬V×-?Ñ-?Ó@ÔAØ×Ñ˜œC 	›NÕ+r   c                 ó”  ^• / mU4S jnU R                   R                  [         R                  U5        U R                   R                  5         U R	                  5         U R                  S[        T5      5        U R                  TS   [        R                  5        U R                  TS   R                  5       U R                  5        g)z0
Ending the stream fires a L{STREAM_END_EVENT}.
c                 ó(   >• TR                  U 5        g r'   r(   )r7   r=   s    €r   r>   Ú5XmlStreamTests.test_streamEnd.<locals>.streamEndEventV   s   ø€ Ø×Ñ˜VÕ$r   r.   r   N)r   r/   rA   r    r   r"   r2   ÚassertIsInstancer   r   ÚgetErrorMessager   )r   r>   r=   s     @r   Útest_streamEndÚXmlStreamTests.test_streamEndP   s–   ø€ ð ˆ	õ	%ð 	�‰×"Ñ"¤9×#=Ñ#=¸~ÔNØ�‰×%Ñ%Ô'Ø×ÑÔØ×Ñ˜œC 	›NÔ+Ø×Ñ˜i¨™l¬G¯O©OÔ<Ø×Ñ˜ 1™×5Ñ5Ó7¸×9OÑ9OÕPr   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r#   r3   rE   rL   Ú__static_attributes__© r   r   r
   r
      s!   † ò=ò
ò5ò0ò,õ4Qr   r
   c                   ó   • \ rS rSrSrS rSrg)ÚDummyProtocoléa   zÍ
I am a protocol with an event dispatcher without further processing.

This protocol is only used for testing XmlStreamFactoryMixin to make
sure the bootstrap observers are added to the protocol instance.
c                 óh   • Xl         X l        / U l        [        R                  R                  U 5        g r'   )ÚargsÚkwargsÚ	observersr   ÚEventDispatcherÚ__init__)r   rX   rY   s      r   r\   ÚDummyProtocol.__init__i   s'   € ØŒ	ØŒØˆŒä×Ñ×(Ñ(¨Õ.r   )rX   rY   rZ   N)rN   rO   rP   rQ   Ú__doc__r\   rR   rS   r   r   rU   rU   a   s   † ñõ/r   rU   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚBootstrapMixinTestséq   ze
Tests for L{xmlstream.BootstrapMixin}.

@ivar factory: Instance of the factory or mixin under test.
c                 ó8   • [         R                  " 5       U l        g r'   )r   ÚBootstrapMixinÚfactoryr   s    r   r   ÚBootstrapMixinTests.setUpx   s   € Ü ×/Ò/Ó1ˆ�r   c                 óò   ^• / mU4S jn[        5       nU R                  R                  SU5        U R                  R                  U5        UR	                  SS5        U R                  S[        T5      5        g)z<
Dispatching an event fires registered bootstrap observers.
c                 ó(   >• TR                  U 5        g r'   r(   ©ÚdataÚcalleds    €r   ÚcbÚ6BootstrapMixinTests.test_installBootstraps.<locals>.cb�   ó   ø€ Ø�M‰M˜$Õr   ú//event/myeventNr.   )rU   rd   ÚaddBootstrapÚinstallBootstrapsÚdispatchr"   r2   ©r   rk   Ú
dispatcherrj   s      @r   Útest_installBootstrapsÚ*BootstrapMixinTests.test_installBootstraps{   sd   ø€ ð ˆõ	 ô #“_ˆ
Ø�‰×!Ñ!Ð"3°RÔ8Ø�‰×&Ñ& zÔ2à×Ñ˜DÐ"3Ô4Ø×Ñ˜œC ›KÕ(r   c                 ó  ^• / mU4S jnU R                   R                  SU5        U R                   R                  SU5        [        5       nU R                   R	                  U5        UR                  SS5        U R                  T5        g)z9
Test addition and removal of a bootstrap event handler.
c                 ó(   >• TR                  U 5        g r'   r(   rh   s    €r   rk   Ú:BootstrapMixinTests.test_addAndRemoveBootstrap.<locals>.cb’   rm   r   rn   N)rd   ro   ÚremoveBootstraprU   rp   rq   ÚassertFalserr   s      @r   Útest_addAndRemoveBootstrapÚ.BootstrapMixinTests.test_addAndRemoveBootstrap‹   ss   ø€ ð
 ˆõ	 ð 	�‰×!Ñ!Ð"3°RÔ8Ø�‰×$Ñ$Ð%6¸Ô;ä"“_ˆ
Ø�‰×&Ñ& zÔ2à×Ñ˜DÐ"3Ô4Ø×Ñ˜Õ r   ©rd   N)	rN   rO   rP   rQ   r^   r   rt   r{   rR   rS   r   r   r`   r`   q   s   † ñò2ò)õ !r   r`   c                   ó*   • \ rS rSrSrS rS rS rSrg)Ú!GenericXmlStreamFactoryTestsMixinéŸ   z+
Generic tests for L{XmlStream} factories.
c                 ó8   • [         R                  " 5       U l        g r'   )r   ÚXmlStreamFactoryrd   r   s    r   r   Ú'GenericXmlStreamFactoryTestsMixin.setUp¤   s   € Ü ×1Ò1Ó3ˆ�r   c                 óÞ   ^• / mU4S jnU R                   R                  SU5        U R                   R                  S5      nUR                  SS5        U R	                  S[        T5      5        g)zI
The protocol factory installs bootstrap event handlers on the protocol.
c                 ó(   >• TR                  U 5        g r'   r(   rh   s    €r   rk   ÚRGenericXmlStreamFactoryTestsMixin.test_buildProtocolInstallsBootstraps.<locals>.cb­   rm   r   rn   Nr.   )rd   ro   ÚbuildProtocolrq   r"   r2   )r   rk   Úxsrj   s      @r   Ú$test_buildProtocolInstallsBootstrapsÚFGenericXmlStreamFactoryTestsMixin.test_buildProtocolInstallsBootstraps§   s]   ø€ ð ˆõ	 ð 	�‰×!Ñ!Ð"3°RÔ8à�\‰\×'Ñ'¨Ó-ˆØ
�‰�DÐ+Ô,à×Ñ˜œC ›KÕ(r   c                 ó†   • U R                   R                  S5      nU R                  U R                   UR                   5        g)z0
The protocol factory is saved in the protocol.
N)rd   r‡   ÚassertIdentical©r   rˆ   s     r   Útest_buildProtocolStoresFactoryÚAGenericXmlStreamFactoryTestsMixin.test_buildProtocolStoresFactory·   s0   € ð �\‰\×'Ñ'¨Ó-ˆØ×Ñ˜TŸ\™\¨2¯:©:Õ6r   r}   N)	rN   rO   rP   rQ   r^   r   r‰   rŽ   rR   rS   r   r   r   r   Ÿ   s   † ñò4ò)õ 7r   r   c                   ó$   • \ rS rSrSrS rS rSrg)ÚXmlStreamFactoryMixinTestsé¿   z/
Tests for L{xmlstream.XmlStreamFactoryMixin}.
c                 ób   • [         R                  " S S S9U l        [        U R                  l        g )N)Útest)r   ÚXmlStreamFactoryMixinrd   rU   r   r   s    r   r   Ú XmlStreamFactoryMixinTests.setUpÄ   s"   € Ü ×6Ò6°tÀ$ÑGˆŒÜ -ˆ�‰Õr   c                 ó®   • U R                   R                  S5      nU R                  SUR                  5        U R                  SS0UR                  5        g)zJ
Arguments passed to the factory are passed to protocol on
instantiation.
Nr'   r”   )rd   r‡   r"   rX   rY   r�   s     r   Ú"test_buildProtocolFactoryArgumentsÚ=XmlStreamFactoryMixinTests.test_buildProtocolFactoryArgumentsÈ   sD   € ð
 �\‰\×'Ñ'¨Ó-ˆà×Ñ˜ "§'¡'Ô*Ø×Ñ˜& $˜¨¯©Õ3r   r}   N)rN   rO   rP   rQ   r^   r   r˜   rR   rS   r   r   r‘   r‘   ¿   s   † ñò.õ4r   r‘   N)r^   Útwisted.internetr   Útwisted.pythonr   Útwisted.trialr   Útwisted.words.xishr   r   r   ÚTestCaser
   ÚProtocolr[   rU   r`   r   r‘   rS   r   r   Ú<module>r       sz   ðñõ
 &Ý "Ý "ß 9Ñ 9ôOQ�X×&Ñ&ô OQôd/�H×%Ñ% w×'>Ñ'>ô /ô +!˜(×+Ñ+ô +!ô\7Ð(;ô 7ô@4Ð!Bõ 4r   