
    Yf                         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d
S )    )defererror)unittest)basesupportc                   ,    e Zd ZdZdZdZd Zd Zd ZdS )DummyAccountzO
    An account object that will do nothing when asked to start to log on.
    Fc                 @    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     U/var/www/html/env/lib/python3.11/site-packages/twisted/words/test/test_basesupport.py_startLogOnzDummyAccount._startLogOn   s     #^--!!    c                 P    d| _         t          j                            | |          S NT)loginHasFailedr   AbstractAccount_loginFailedr   results     r   r   zDummyAccount._loginFailed   s#    "*77fEEEr   c                 P    d| _         t          j                            | |          S r   )loginCallbackCalledr   r   	_cb_logOnr   s     r   r   zDummyAccount._cb_logOn   s#    #' *44T6BBBr   N)	__name__
__module____qualname____doc__r   r   r   r   r    r   r   r   r   	   s`          N" " "F F FC C C C Cr   r   c                       e Zd ZdZdZd ZdS )DummyUIzT
    Provide just the interface required to be passed to AbstractAccount.logOn.
    Fc                     d| _         d S r   )clientRegisteredr   s     r   registerAccountClientzDummyUI.registerAccountClient+   s     $r   N)r   r   r   r   r#   r$   r   r   r   r!   r!   $   s5          % % % % %r   r!   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )ClientMsgTestsc                     t                      S )N)r!   r   s    r   makeUIzClientMsgTests.makeUI0   s    yyr   c                 *    t          dddd dd          S )NlaF	localhosti  )r   r(   s    r   makeAccountzClientMsgTests.makeAccount3   s    D%t[$GGGr   c                                                                                         }                    |          }j                            d            fd}|                    |           |S )z
        Test that account.logOn works, and it calls the right callback when a
        connection is established.
        Nc                 t                         j        d                               j        d           d S )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35RSSSOOG79QRRRRRr   )r-   r)   logOnr   callbackaddCallback)r   uidr4   r3   s   `   @r   test_connectzClientMsgTests.test_connect6   s    
 ""$$[[]]MM"&&t,,,	S 	S 	S 	S 	S 	S 	
er   c                                                                                                                      }j                            t                                  fd} fd}|                    ||           |S )r/   c                                          j        d                               j        d                                j         d           d S )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   sa    OOG24NOOOW8:UVVVOO'')S    r   c                 0                         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J r   )r-   r)   r5   r   errback	ExceptionaddCallbacks)r   r9   r>   cbr3   r8   s   `   @@r   test_failedConnectz!ClientMsgTests.test_failedConnectG   s    
 ""$$[[]]MM"%%ikk222	 	 	 	 	 	 	 KJJJ	r3r   c                     |                                  }|                                 }|                    |           |                     t          j        |j        |           dS )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\   sW    
 ""$$[[]]b%,gmR@@@@@r   N)r   r   r   r)   r-   r:   rF   rJ   r   r   r   r&   r&   /   sg          H H H  "  *A A A A Ar   r&   N)twisted.internetr   r   twisted.trialr   twisted.words.imr   r   r   r!   TestCaser&   r   r   r   <module>rO      s    * ) ) ) ) ) ) ) " " " " " " ( ( ( ( ( (C C C C C;. C C C6% % % % % % % %5A 5A 5A 5A 5AX& 5A 5A 5A 5A 5Ar   