Ë
    oj&  ã                   óÆ   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
 	 ddlZddlmZ ddlmZ  G d	„ d
e«      Z ee d«       G d„ de«      «       Zy# e$ r dZeZY Œ/w xY w)zTest SOAP support.é    )ÚskipIf)ÚdeferÚreactor)ÚTestCase)ÚerrorÚserverN)Úsoap)ÚSOAPPublisherc                   óX   — e Zd Zd„ Zdd„Zde_        d„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestc                 ó   — ||z   S ©N© ©ÚselfÚaÚbs      ú</usr/lib/python3/dist-packages/twisted/web/test/test_soap.pyÚsoap_addzTest.soap_add   ó   € Ø�1‰uˆó    c                 ó   — ||z   S r   r   r   s      r   Úsoap_kwargszTest.soap_kwargs   r   r   Tc                 ó   — ||d gS r   r   )r   ÚstringÚnums      r   Úsoap_triplezTest.soap_triple"   s   € Ø˜˜TÐ"Ð"r   c                 ó0   — t        j                  ddi«      S )Nr   Úc)ÚSOAPpyÚ
structType©r   s    r   Úsoap_structzTest.soap_struct%   s   € Ü× Ñ  # s Ó,Ð,r   c                 ó,   — t        j                  |«      S r   )r   Úsucceed)r   Úxs     r   Ú
soap_deferzTest.soap_defer(   s   € Ü�}‰}˜QÓÐr   c                 ó<   — t        j                  t        «       «      S r   ©r   ÚfailÚ
ValueErrorr"   s    r   Úsoap_deferFailzTest.soap_deferFail+   ó   € Ü�z‰zœ*›,Ó'Ð'r   c                 ó   — t         ‚r   )ÚRuntimeErrorr"   s    r   Ú	soap_failzTest.soap_fail.   s   € ÜÐr   c                 ó<   — t        j                  t        «       «      S r   r)   r"   s    r   Úsoap_deferFaultzTest.soap_deferFault1   r-   r   c                 ó   — dddg gddœS )Nr   r   é   Úfoo©r   ÚDr   r"   s    r   Úsoap_complexzTest.soap_complex4   s   € Ø˜3  BÐ'¨eÑ4Ð4r   c                 ó   — ||   S r   r   )r   ÚmapÚkeys      r   Ú	soap_dictzTest.soap_dict7   s   € Ø�3‰xˆr   N)é   é   )Ú__name__Ú
__module__Ú__qualname__r   r   ÚuseKeywordsr   r#   r'   r,   r0   r2   r8   r<   r   r   r   r   r      s>   „ òóð #€KÔò#ò-ò ò(òò(ò5ór   r   zSOAPpy not installedc                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	SOAPTestsc                 óè   — t        «       | _        t        j                  dt	        j
                  | j                  «      d¬«      | _        | j                  j                  «       j                  | _        y )Nr   z	127.0.0.1)Ú	interface)	r   Ú	publisherr   Ú	listenTCPr   ÚSiteÚpÚgetHostÚportr"   s    r   ÚsetUpzSOAPTests.setUp=   sK   € Ü›ˆŒÜ×"Ñ"ØŒv�{‰{˜4Ÿ>™>Ó*°kô
ˆŒð —F‘F—N‘NÓ$×)Ñ)ˆ�	r   c                 ó6   — | j                   j                  «       S r   )rJ   ÚstopListeningr"   s    r   ÚtearDownzSOAPTests.tearDownD   s   € Ø�v‰v×#Ñ#Ó%Ð%r   c                 óF   — t        j                  d| j                  z  «      S )Nzhttp://127.0.0.1:%d/)r	   ÚProxyrL   r"   s    r   ÚproxyzSOAPTests.proxyG   s   € Ü�z‰zÐ0°4·9±9Ñ<Ó=Ð=r   c                 óÔ  — dddddidfdfddg d¢fg}g }|D ]T  \  }}} | j                  «       j                  |g|¢­Ž }|j                  | j                  |«       |j	                  |«       ŒV | j                  «       j                  d	«      }|j                  d
„ «       |j                  | j                  dddg gddœ«       |j	                  |«       t        j                  |d¬«      S )N)Úadd)r>   é   é   )r   )r   r   Údictr   r=   Útriple)r   r=   )r   r=   NÚcomplexc                 ó"   — | j                  «       S r   )Ú_asdict)Úresults    r   ú<lambda>z'SOAPTests.testResults.<locals>.<lambda>Z   s   €  V§^¡^Ó%5€ r   r   r   r4   r5   r6   T)ÚfireOnOneErrback)rS   Ú
callRemoteÚaddCallbackÚassertEqualÚappendr   ÚDeferredList)r   ÚinputOutputÚdlÚmethÚargsÚoutpÚds          r   ÚtestResultszSOAPTests.testResultsJ   së   € àØ"Ø�s˜A�h �_ aÐ(Ø�x¢Ð0ð	
ˆð ˆØ +ò 	ÑˆD�$˜Ø'�—
‘
“×'Ñ'¨Ð4¨tÒ4ˆAØ�M‰M˜$×*Ñ*¨DÔ1Ø�I‰I�a�Lð	ð �J‰J‹L×#Ñ# IÓ.ˆØ	�‰Ñ5Ô6Ø	�‰�d×&Ñ&¨s°C¸¸RÐ.@ÀuÑ(MÔNØ
�	‰	�!Œô ×!Ñ! "°tÔ<Ð<r   c                 ó²   ‡ — ‰ j                  «       j                  d«      }‰ j                  |t        j                  «       ˆ fd„}|j                  |«       |S )zD
        Check that a non existing method return error 500.
        Údoesntexistc                 óP   •— ‰j                  t        | j                  «      d«       y )Niô  )rb   ÚintÚstatus)Úerrr   s    €r   Úcbz(SOAPTests.testMethodNotFound.<locals>.cbi   s   ø€ Ø×ÑœS §¡›_¨cÕ2r   )rS   r`   ÚassertFailurer   ÚErrorra   )r   rj   rr   s   `  r   ÚtestMethodNotFoundzSOAPTests.testMethodNotFoundb   sG   ø€ ð �J‰J‹L×#Ñ# MÓ2ˆØ×Ñ˜1œeŸk™kÔ*ô	3ð 	
�‰�bÔØˆr   c                 ó   — | j                  | j                  j                  d«      «       | j                  | j                  j                  d«      «       | j                  | j                  j                  d«      «       y)zc
        Test lookupFunction method on publisher, to see available remote
        methods.
        rU   r*   ÚfoobarN)Ú
assertTruerG   ÚlookupFunctionÚassertFalser"   s    r   ÚtestLookupFunctionzSOAPTests.testLookupFunctiono   sW   € ð
 	�‰˜Ÿ™×5Ñ5°eÓ<Ô=Ø�‰˜Ÿ™×5Ñ5°fÓ=Ô>Ø×Ñ˜Ÿ™×6Ñ6°xÓ@ÕAr   N)	r?   r@   rA   rM   rP   rS   rk   ru   r{   r   r   r   rD   rD   ;   s!   „ ò*ò&ò>ò=ò0óBr   rD   )Ú__doc__Úunittestr   Útwisted.internetr   r   Útwisted.trial.unittestr   Útwisted.webr   r   r    r	   Útwisted.web.soapr
   ÚImportErrorÚobjectr   rD   r   r   r   ú<module>r„      sw   ðñ õ ç +Ý +ß %ðÛå Ý.ôˆ=ô ñD ˆFˆ
Ð*Ó+ô:B�ó :Bó ,ñ:BøðQ ò Ø€FØ‚Mðús    A Á	A ÁA 