
    Vh                         d dl mZmZ d dlmZ d dlmZ  G d dej                        Z G d d      Z	 G d d	ej                        Zy
)    )defererror)unittest)basesupportc                   *    e Zd ZdZdZdZd Zd Zd Zy)DummyAccountzO
    An account object that will do nothing when asked to start to log on.
    Fc                 L    t        j                         | _        | j                  S )z
        Set self.loginDeferred to the same as the deferred returned, allowing a
        testcase to .callback or .errback.

        @return: A deferred.
        )r   DeferredloginDeferred)selfargss     S/home/dcms/DCMS/lib/python3.12/site-packages/twisted/words/test/test_basesupport.py_startLogOnzDummyAccount._startLogOn   s     #^^-!!!    c                 P    d| _         t        j                  j                  | |      S NT)loginHasFailedr   AbstractAccount_loginFailedr   results     r   r   zDummyAccount._loginFailed   s#    "**77fEEr   c                 P    d| _         t        j                  j                  | |      S r   )loginCallbackCalledr   r   	_cb_logOnr   s     r   r   zDummyAccount._cb_logOn   s#    #' **44T6BBr   N)	__name__
__module____qualname____doc__r   r   r   r   r    r   r   r   r   	   s%     N"FCr   r   c                       e Zd ZdZdZd Zy)DummyUIzT
    Provide just the interface required to be passed to AbstractAccount.logOn.
    Fc                     d| _         y r   )clientRegisteredr   s     r   registerAccountClientzDummyUI.registerAccountClient+   s
     $r   N)r   r   r   r   r#   r$   r   r   r   r!   r!   $   s     %r   r!   c                   *    e Zd Zd Zd Zd Zd Zd Zy)ClientMsgTestsc                     t               S )N)r!   r   s    r   makeUIzClientMsgTests.makeUI0   s
    yr   c                 "    t        dddd dd      S )NlaF	localhosti  )r   r(   s    r   makeAccountzClientMsgTests.makeAccount3   s    D%t[$GGr   c                       j                          j                         }j                  |      }j                  j	                  d        fd}|j                  |       |S )z
        Test that account.logOn works, and it calls the right callback when a
        connection is established.
        Nc                 v    j                  j                  d       j                  j                  d       y )NzLogin shouldn't have failedzWe should be logged in)assertFalser   
assertTruer   )r   accountr   s    r   checkz*ClientMsgTests.test_connect.<locals>.check@   s/    W335RSOOG779QRr   )r-   r)   logOnr   callbackaddCallback)r   uidr4   r3   s   `   @r   test_connectzClientMsgTests.test_connect6   sY    
 ""$[[]MM"&&t,	S 	
er   c                       j                          j                         j                        }j                  j	                  t                       fd} fd}|j                  ||       |S )r/   c                     j                  j                  d       j                  j                  d       j                  j                   d       y )NzLogin should have failedzWe shouldn't be logged inz(Client shouldn't be registered in the UI)r2   r   r1   r   r#   )reasonr3   r   r8   s    r   errz.ClientMsgTests.test_failedConnect.<locals>.errQ   sJ    OOG224NOW88:UVOO''')Sr   c                 (    j                  dd      S )NFzShouldn't get called back)r2   )rr   s    r   <lambda>z3ClientMsgTests.test_failedConnect.<locals>.<lambda>X   s    tu.IJ r   )r-   r)   r5   r   errback	ExceptionaddCallbacks)r   r9   r>   cbr3   r8   s   `   @@r   test_failedConnectz!ClientMsgTests.test_failedConnectG   sb    
 ""$[[]MM"%%ik2	 K	r3r   c                     | j                         }| j                         }|j                  |       | j                  t        j
                  |j                  |       y)ze
        Test that it can fail sensibly when someone tried to connect before
        we did.
        N)r-   r)   r5   assertRaisesr   ConnectError)r   r3   r8   s      r   test_alreadyConnectingz%ClientMsgTests.test_alreadyConnecting\   sE    
 ""$[[]b%,,gmmR@r   N)r   r   r   r)   r-   r:   rF   rJ   r   r   r   r&   r&   /   s    H"*Ar   r&   N)twisted.internetr   r   twisted.trialr   twisted.words.imr   r   r   r!   TestCaser&   r   r   r   <module>rO      sB    * " (C;.. C6% %5AX&& 5Ar   