Current File : //lib/python3/dist-packages/twisted/conch/test/__pycache__/test_endpoints.cpython-312.pyc |
�
Ϫ�f� � � � d Z ddlZddlmZ ddlmZ ddlmZ ddl m
Z
mZ ddlZddl
mZmZmZ ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZmZmZmZ dd
lmZm Z m!Z!m"Z" ddl#m$Z$m%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; e9d� reddl<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZC ddlDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZM ddlNmOZO ddlPmQZQ dd lRmSZS dd!lTmUZU dd"lVmWZW dd#lXmYZY dd$lZm[Z[ dd%l\m]Z]m^Z^m_Z_m`Z` nd&ZaebZUebZ[ebZSebZWebZQebZOebZCebZ@ebZ=dd'lcmdZdmeZe G d(� d)ed� Zf G d*� d+eQ� Zg G d,� d-eQ� Zh G d.� d/eQ� Zi G d0� d1� Zj G d2� d3e'� Zk G d4� d5� Zl G d6� d7e[� Zm G d8� d9eU� Zn ee$� G d:� d;� � Zo ee%� G d<� d=� � Zp G d>� d?� Zq G d@� dAe;eq� Zr G dB� dCe;eq� Zs G dD� dEe;� Zt G dF� dG� Zu G dH� dIe;� Zvy)Jz'
Tests for L{twisted.conch.endpoints}.
� N)�ENOSYS)�pack)�implementer)�verifyClass�verifyObject)�
ConchError�HostKeyChanged�UserRejectedKey)�
IConchUser)�'InMemoryUsernamePasswordDatabaseDontUse)�Portal)�IPv4Address)�CancelledError�Deferred�fail�succeed)�ConnectingCancelledError�ConnectionDone�ConnectionRefusedError�ProcessTerminated)�IAddress�IStreamClientEndpoint)�Factory�Protocol)�EventLoggingObserver�MemoryReactorClock�StringTransport)�LogLevel�globalLogPublisher)�
networkString)�Failure)�FilePath)�msg)�
requireModule)�TestCase�cryptography)� ConchUser)�InMemorySSHKeyDB�SSHPublicKeyChecker)� ConsoleUI�KnownHostsFile)�AuthenticationFailed�SSHCommandAddress�SSHCommandClientEndpoint�_ExistingConnectionHelper�_ISSHConnectionCreator�_NewConnectionHelper� _ReadFile)�common)�SSHAgentServer)�
SSHChannel)�
SSHConnection)�
SSHFactory)�Key)�SSHClientTransport)�SSHUserAuthServer)�privateDSA_openssh�privateRSA_openssh� privateRSA_openssh_encrypted_aes�publicRSA_opensshzcan't run w/o cryptography)�
FakeTransport�connectc � � e Zd ZdZdZd� Zy)�AbortableFakeTransportzC
A L{FakeTransport} with added C{abortConnection} support.
Fc � � d| _ y)z}
Abort the connection in a fake manner.
This should really be implemented in the underlying module.
TN��aborted��selfs �C/usr/lib/python3/dist-packages/twisted/conch/test/test_endpoints.py�abortConnectionz&AbortableFakeTransport.abortConnection] s � � ��� N)�__name__�
__module__�__qualname__�__doc__rE rI � rJ rH rB rB V s � �� �G�rJ rB c � � e Zd ZdZd� Zy)�BrokenExecSessionzO
L{BrokenExecSession} is a session on which exec requests always fail.
c � � y)z�
Fail all exec requests.
@param data: Information about what is being executed.
@type data: L{bytes}
@return: C{0} to indicate failure
@rtype: L{int}
r rO �rG �datas rH �request_execzBrokenExecSession.request_execk � � � rJ N�rK rL rM rN rU rO rJ rH rQ rQ f � � ��
rJ rQ c � � e Zd ZdZd� Zy)�WorkingExecSessionzS
L{WorkingExecSession} is a session on which exec requests always succeed.
c � � y)z�
Succeed all exec requests.
@param data: Information about what is being executed.
@type data: L{bytes}
@return: C{1} to indicate success
@rtype: L{int}
� rO rS s rH rU zWorkingExecSession.request_exec} rV rJ NrW rO rJ rH rZ rZ x rX rJ rZ c � � e Zd ZdZd� Zy)�UnsatisfiedExecSessionz�
L{UnsatisfiedExecSession} is a session on which exec requests are always
delayed indefinitely, never succeeding or failing.
c � � t � S )z�
Delay all exec requests indefinitely.
@param data: Information about what is being executed.
@type data: L{bytes}
@return: A L{Deferred} which will never fire.
@rtype: L{Deferred}
)r rS s rH rU z#UnsatisfiedExecSession.request_exec� s � � �z�rJ NrW rO rJ rH r^ r^ � s � ��
rJ r^ c � � e Zd Zd� Zd� Zy)�TrivialRealmc � � i | _ y �N)�
channelLookuprF s rH �__init__zTrivialRealm.__init__� s
� ���rJ c �L � t � }| j |_ t |d� fS )Nc � � y rc rO rO rJ rH �<lambda>z,TrivialRealm.requestAvatar.<locals>.<lambda>� s � rJ )r'