mock-ssh-server

Mock SSH server for testing purposes

MIT 12 个版本
Carlos Valiente <carlos@pepelabs.net>
安装
pip install mock-ssh-server
poetry add mock-ssh-server
pipenv install mock-ssh-server
conda install mock-ssh-server
描述

mock-ssh-server - An SSH server for testing purposes

mock-ssh-server packs a Python context manager that implements an SSH server for testing purposes. It is built on top of paramiko_, so it does not need OpenSSH binaries to be installed.

Sample usage

As a py.test_ fixture::

import os

from pytest import yield_fixture

import mockssh


@yield_fixture()
def server():
    users = {
        "sample-user": "/path/to/user-private-key",
    }
    with mockssh.Server(users) as s:
        yield s


def test_ssh_session(server):
    for uid in server.users:
        with server.client(uid) as c:
            _, stdout, _ = c.exec_command("ls /")
            assert stdout.read()

def test_sftp_session(server):
    for uid in server.users:
        target_dir = tempfile.mkdtemp()
        target_fname = os.path.join(target_dir, "foo")
        assert not os.access(target_fname, os.F_OK)

        with server.client(uid) as c:
            sftp = c.open_sftp()
            sftp.put(__file__, target_fname, confirm=True)
            assert os.access(target_fname, os.F_OK)

.. _paramiko: http://www.paramiko.org/ .. _py.test: http://pytest.org/latest/ .. image:: https://travis-ci.org/carletes/mock-ssh-server.svg :target: https://travis-ci.org/carletes/mock-ssh-server