async def send_gate(gate_builder: Callable, conn: SSHClientConnection, tempdir: str, interpreter: str) -> None: ftl_gate = gate_builder(interpreter=interpreter) async with conn.start_sftp_client() as sftp: await sftp.put(ftl_gate, f"{tempdir}/ftl_gate.pyz") result = await conn.run(f"chmod 700 {tempdir}/ftl_gate.pyz", check=True) assert result.exit_status == 0
def test_isalive_attribute_error(asyncssh_transport): # lie and pretend the session is already assigned options = DumbContainer() asyncssh_transport.session = SSHClientConnection( loop=asyncio.get_event_loop_policy().get_event_loop(), options=options) # lie and tell asyncssh auth is done asyncssh_transport.session._auth_complete = True assert asyncssh_transport.isalive() is False
def test_isalive(asyncssh_transport): # lie and pretend the session is already assigned options = DumbContainer() asyncssh_transport.session = SSHClientConnection( loop=asyncio.get_event_loop_policy().get_event_loop(), options=options) # lie and tell asyncssh auth is done asyncssh_transport.session._auth_complete = True # also have to lie and create a transport and have it return False when is_closing is called asyncssh_transport.session._transport = DumbContainer() asyncssh_transport.session._transport.is_closing = lambda: False assert asyncssh_transport.isalive() is True
def test_close_catch_brokenpipe(monkeypatch, asyncssh_transport): def _close(cls): raise BrokenPipeError monkeypatch.setattr( "asyncssh.connection.SSHClientConnection.close", _close, ) # lie and pretend the session is already assigned options = DumbContainer() asyncssh_transport.session = SSHClientConnection( loop=asyncio.get_event_loop_policy().get_event_loop(), options=options) asyncssh_transport.close() assert asyncssh_transport.session is None assert asyncssh_transport.stdin is None assert asyncssh_transport.stdout is None