Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

py.test plugin to locally test sftp server connections.

Project Description

pytest-sftpserver is a plugin for pytest that provides a local SFTP-Server fixture.

The SFTP-Server provided by this fixture serves content not from files but directly from Python objects.


Assume you want to test a function that downloads a file from an SFTP-Server:

from contextlib import closing
import paramiko
def get_sftp_file(host, port, username, password, path):
    with closing(paramiko.Transport((host, port))) as transport:
        transport.connect(username=username, password=password)
        with closing(paramiko.SFTPClient.from_transport(transport)) as sftpclient:
            with, "r") as sftp_file:

This plugin allows to test such functions without having to spin up an external SFTP-Server by providing a pytest fixture called sftpserver. You use it simply by adding a parameter named sftpserver to your test function:

def test_sftp_fetch(sftpserver):
    with sftpserver.serve_content({'a_dir': {'somefile.txt': "File content"}}):
        assert get_sftp_file(, sftpserver.port, "user",
                             "pw", "/a_dir/somefile.txt") == "File content"

As can be seen from this example sftpserver serves content directly from python objects instead of files.


pip install pytest-sftpserver

Supported Python versions

This package supports the following Python versions:

  • 2.6 - 2.7
  • 3.2 - 3.4


  • Add more documentation
  • Add more usage examples
  • Add TODOs :)

Version History

1.1.2 - 2015-06-01

  • Fixed a bug in stat size calculation (#4)
  • Fixed mkdir() overwriting existing content (#5)

Thanks to @zerok for both bug reports and accompanying tests.

1.1.1 - 2015-04-04

  • Fixed broken chmod() behaviour for non-existing ‘files’ (Thanks @dundeemt)

1.1.0 - 2014-10-15

  • Fixed broken stat() behaviour for non-existing ‘files’
  • Slightly increased test coverage

1.0.2 - 2014-07-27

  • Fixed broken test on Python 2.6

1.0.1 - 2014-07-27

  • Added Python 3.2 support
  • Clened up tox configuration

1.0.0 - 2014-07-18

  • Initial release


Licensed unter the MIT License. See file LICENSE.


The implementation and idea for this plugin is in part based upon:

Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pytest_sftpserver-1.1.2-py2.py3-none-any.whl (19.5 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Jun 1, 2015
pytest-sftpserver-1.1.2.tar.gz (11.6 kB) Copy SHA256 Checksum SHA256 Source Jun 1, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting