尝试在Python上模拟OpenSSH会话时遇到麻烦AttributeError:__exit __

问题描述

我当前正在尝试模拟和OpenSSH会话,因此在以下代码中,session.sendCommand(cmd)将始终返回固定值:

    with target.managed_ssh_session(as_root=True) as session:
        return value in session.sendCommand(cmd)

我正在使用以下内容

def test_create(mocked_target):
    session = Mock(OpSSH)
    session.sendCommand.return_value = NO_SUCH_FILE
    mocked_target.managed_ssh_session.return_value = session
    installed_package.protect(mocked_target)

然后出现以下错误

使用target.managed_ssh_session(as_root = True)作为会话: E AttributeError:退出

但是,如果我将测试代码替换为以下内容

    session = target.managed_ssh_session(as_root=True)
    result = value in session.sendCommand(cmd)
    session.close()
    return result

然后它就像一个魅力! 那么,为什么我对with ... as:有疑问?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)