
    /Jf&                         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 n# e$ r dZeZY nw xY w G d	 d
e          Z ee d           G d de                      ZdS )zTest SOAP support.    )skipIf)deferreactor)TestCase)errorserverN)soap)SOAPPublisherc                   Z    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dS )Testc                     ||z   S N selfabs      ]/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/twisted/web/test/test_soap.pysoap_addzTest.soap_add       1u          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                 .    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                 B    t          j        t                                S r   r   fail
ValueErrorr$   s    r   soap_deferFailzTest.soap_deferFail+       z*,,'''r   c                     t           r   )RuntimeErrorr$   s    r   	soap_failzTest.soap_fail.   s    r   c                 B    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44r   c                     ||         S r   r   )r   mapkeys      r   	soap_dictzTest.soap_dict7   s    3xr   N)r   r   )__name__
__module____qualname__r   r   useKeywordsr   r%   r)   r.   r2   r4   r:   r>   r   r   r   r   r      s              #K# # #- - -     ( ( (  ( ( (5 5 5    r   r   zSOAPpy not installedc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )	SOAPTestsc                     t                      | _        t          j        dt	          j        | j                  d          | _        | j                                        j        | _        d S )Nr   z	127.0.0.1)	interface)	r   	publisherr   	listenTCPr   SitepgetHostportr$   s    r   setUpzSOAPTests.setUp=   sU    "v{4>**k
 
 
 FNN$$)			r   c                 4    | j                                         S r   )rJ   stopListeningr$   s    r   tearDownzSOAPTests.tearDownD   s    v##%%%r   c                 :    t          j        d| j        z            S )Nzhttp://127.0.0.1:%d/)r	   ProxyrL   r$   s    r   proxyzSOAPTests.proxyG   s    z049<===r   c                    dddddidfdfddg dfg}g }|D ]V\  }}} |                                  j        |g|R  }|                    | j        |           |                    |           W|                                                      d	          }|                    d
            |                    | j        dddg gdd           |                    |           t          j        |d          S )N)add)r         )r   )r   r   dictr   r   triple)r   r   )r   r   Ncomplexc                 *    |                                  S r   )_asdict)results    r   <lambda>z'SOAPTests.testResults.<locals>.<lambda>Z   s    V^^%5%5 r   r   r!   r6   r7   r8   T)fireOnOneErrback)rS   
callRemoteaddCallbackassertEqualappendr   DeferredList)r   inputOutputdlmethargsoutpds          r   testResultszSOAPTests.testResultsJ   s   "sAh_a(x0	
  + 	 	D$'

'4t444AMM$*D111IIaLLLL JJLL##I..	55666	d&sCR.@u(M(MNNN
		! !"t<<<<r   c                                                                            d          }                     |t          j                    fd}|                    |           |S )zD
        Check that a non existing method return error 500.
        doesntexistc                 X                         t          | j                  d           d S )Ni  )rb   intstatus)errr   s    r   cbz(SOAPTests.testMethodNotFound.<locals>.cbi   s'    S__c22222r   )rS   r`   assertFailurer   Errorra   )r   rj   rr   s   `  r   testMethodNotFoundzSOAPTests.testMethodNotFoundb   sj     JJLL##M221ek***	3 	3 	3 	3 	3 	
br   c                    |                      | j                            d                     |                      | j                            d                     |                     | j                            d                     dS )zc
        Test lookupFunction method on publisher, to see available remote
        methods.
        rU   r,   foobarN)
assertTruerG   lookupFunctionassertFalser$   s    r   testLookupFunctionzSOAPTests.testLookupFunctiono   sr    
 	55e<<===55f==>>>66x@@AAAAAr   N)	r?   r@   rA   rM   rP   rS   rk   ru   r{   r   r   r   rD   rD   ;   ss        * * *& & &> > >= = =0  B B B B 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      sF           + + + + + + + + + + + + + + % % % % % % % %MMM      .......   FMMM
    =   D F
*++:B :B :B :B :B :B :B ,+:B :B :Bs   1 	==