Metadata-Version: 2.4
Name: mock-ssh-server
Version: 0.8.2
Summary: Mock SSH server for testing purposes
Home-page: https://github.com/carletes/mock-ssh-server
Author: Carlos Valiente
Author-email: carlos@pepelabs.net
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Testing
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
License-File: LICENSE
Requires-Dist: paramiko
Requires-Dist: selectors2; python_version < "3.4"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

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
