Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/carletes/mock-ssh-server

Python mock SSH server for testing purposes
https://github.com/carletes/mock-ssh-server

mock python

Last synced: 6 days ago
JSON representation

Python mock SSH server for testing purposes

Awesome Lists containing this project

README

        

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