o
    ¼>h¹  ã                   @   s^   d dl mZmZ d dlmZ d dlmZ G dd„ dejƒZG dd„ dƒZ	G dd	„ d	ej
ƒZd
S )é    )ÚdeferÚerror)Úunittest)Úbasesupportc                   @   s0   e Zd ZdZdZdZdd„ Zdd„ Zdd„ Zd	S )
ÚDummyAccountzO
    An account object that will do nothing when asked to start to log on.
    Fc                 G   s   t  ¡ | _| 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Úargs© r   úƒ/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/twisted/words/test/test_basesupport.pyÚ_startLogOn   s   
zDummyAccount._startLogOnc                 C   ó   d| _ tj | |¡S ©NT)ÚloginHasFailedr   ÚAbstractAccountÚ_loginFailed©r	   Úresultr   r   r   r      ó   zDummyAccount._loginFailedc                 C   r   r   )ÚloginCallbackCalledr   r   Ú	_cb_logOnr   r   r   r   r      r   zDummyAccount._cb_logOnN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   	   s    
r   c                   @   s   e Zd ZdZdZdd„ ZdS )ÚDummyUIzT
    Provide just the interface required to be passed to AbstractAccount.logOn.
    Fc                 C   s
   d| _ d S r   )ÚclientRegisteredr   r   r   r   ÚregisterAccountClient+   s   
zDummyUI.registerAccountClientN)r   r   r   r   r   r   r   r   r   r   r   $   s    r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚClientMsgTestsc                 C   s   t ƒ S )N)r   ©r	   r   r   r   ÚmakeUI0   s   zClientMsgTests.makeUIc                 C   s   t dddd ddƒS )NÚlaFÚ	localhosti  )r   r    r   r   r   ÚmakeAccount3   s   zClientMsgTests.makeAccountc                    sB   ˆ  ¡ ‰ ˆ ¡ }ˆ  |¡}ˆ j d¡ ‡ ‡fdd„}| |¡ |S )úz
        Test that account.logOn works, and it calls the right callback when a
        connection is established.
        Nc                    s    ˆ  ˆ jd¡ ˆ ˆ jd¡ d S )NzLogin shouldn't have failedzWe should be logged in)ÚassertFalser   Ú
assertTruer   )r   ©Úaccountr	   r   r   Úcheck@   s   z*ClientMsgTests.test_connect.<locals>.check)r$   r!   ÚlogOnr   ÚcallbackÚaddCallback)r	   ÚuiÚdr*   r   r(   r   Útest_connect6   s   

zClientMsgTests.test_connectc                    sT   ˆ  ¡ ‰ ˆ ¡ ‰ˆ  ˆ¡}ˆ j tƒ ¡ ‡ ‡‡fdd„}‡fdd„}| ||¡ |S )r%   c                    s0   ˆ  ˆ 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)r'   r   r&   r   r   )Úreason©r)   r	   r.   r   r   ÚerrQ   s
   ÿz.ClientMsgTests.test_failedConnect.<locals>.errc                    s   ˆ   dd¡S )NFzShouldn't get called back)r'   )Úrr    r   r   Ú<lambda>X   s    z3ClientMsgTests.test_failedConnect.<locals>.<lambda>)r$   r!   r+   r   ÚerrbackÚ	ExceptionÚaddCallbacks)r	   r/   r3   Úcbr   r2   r   Útest_failedConnectG   s   
z!ClientMsgTests.test_failedConnectc                 C   s0   |   ¡ }|  ¡ }| |¡ |  tj|j|¡ dS )ze
        Test that it can fail sensibly when someone tried to connect before
        we did.
        N)r$   r!   r+   ÚassertRaisesr   ÚConnectError)r	   r)   r.   r   r   r   Útest_alreadyConnecting\   s   
z%ClientMsgTests.test_alreadyConnectingN)r   r   r   r!   r$   r0   r:   r=   r   r   r   r   r   /   s    r   N)Útwisted.internetr   r   Útwisted.trialr   Útwisted.words.imr   r   r   r   ÚTestCaser   r   r   r   r   Ú<module>   s   