Skip to main content

A PyTest plugin which provides an FTP fixture for your tests

Project description

PyTest FTP Server

https://img.shields.io/pypi/v/pytest_localftpserver.svg https://img.shields.io/pypi/pyversions/pytest_localftpserver.svg https://api.travis-ci.org/oz123/pytest-localftpserver.svg?branch=master https://ci.appveyor.com/api/projects/status/github/oz123/pytest-localftpserver?svg=true Documentation Status Updates Coverage

A PyTest plugin which provides an FTP fixture for your tests

Attention!

As of version 1.0.0 the support for python 2.7 and 3.4 was dropped. If you need to support those versions you should pin the version pytest_localftpserver==0.6.0.

Usage Quickstart:

This Plugin provides the fixtures ftpserver and ftpserver_TLS, which are threaded instances of a FTP server, with which you can upload files and test FTP functionality. It can be configured using the following environment variables:

Environment variable Usage
FTP_USER Username of the registered user.
FTP_PASS Password of the registered user.
FTP_PORT Port for the normal ftp server to run on.
FTP_HOME Home folder of the registered user.
FTP_FIXTURE_SCOPE Scope/lifetime of the fixture.
FTP_PORT_TLS Port for the TLS ftp server to run on.
FTP_HOME_TLS Home folder of the registered user, used by the TLS ftp server.
FTP_CERTFILE Certificate to be used by the TLS ftp server.

See the tests directory or the documentation for examples.

You can either set environment variables on a system level or use tools such as pytest-env or tox, to change the default settings of this plugin. Sample config for pytest-cov:

$ cat pytest.ini
[pytest]
env =
    FTP_USER=benz
    FTP_PASS=erni1
    FTP_HOME = /home/ftp_test
    FTP_PORT=31175
    FTP_FIXTURE_SCOPE=function
    # only affects ftpserver_TLS
    FTP_PORT_TLS = 31176
    FTP_HOME_TLS = /home/ftp_test_TLS
    FTP_CERTFILE = ./tests/test_keycert.pem

Sample config for Tox:

$ cat tox.ini
[tox]
envlist = py{27,34,35,36,37}

[testenv]
setenv =
    FTP_USER=benz
    FTP_PASS=erni1
    FTP_HOME = {envtmpdir}
    FTP_PORT=31175
    FTP_FIXTURE_SCOPE=function
    # only affects ftpserver_TLS
    FTP_PORT_TLS = 31176
    FTP_HOME_TLS = /home/ftp_test_TLS
    FTP_CERTFILE = {toxinidir}/tests/test_keycert.pem
commands =
    py.test tests

Credits

This package was inspired by, https://pypi.org/project/pytest-localserver/ made by Sebastian Rahlf, which lacks an FTP server.

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

1.0.0 (2019-09-05)

  • Dropped support for Python 2.7 and 3.4

0.6.0 - released as tag only

  • Added fixture scope configuration.
  • Added ftpserver_TLS as TLS version of the fixture.

0.5.0 (2018-12-04)

  • Added support for Windows.
  • Added hightlevel interface.

0.1.0 (2016-12-09)

  • First release on PyPI.

Project details


Download files

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

Files for pytest-localftpserver, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size pytest_localftpserver-1.0.0.tar.gz (35.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page