Skip to main content

PyTest FTP Server

https://img.shields.io/pypi/v/pytest_localftpserver.svg https://camo.githubusercontent.com/89b9f56d30241e30f546daf9f43653f08e920f16/68747470733a2f2f696d672e736869656c64732e696f2f636f6e64612f766e2f636f6e64612d666f7267652f7079746573742d6c6f63616c6674707365727665722e737667 https://img.shields.io/pypi/pyversions/pytest_localftpserver.svg https://github.com/oz123/pytest-localftpserver/workflows/Tests/badge.svg 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 to 0.6.0, i.e. add the following lines to your “requirements_dev.txt”:

# pytest_localftpserver==0.6.0
https://github.com/oz123/pytest-localftpserver/archive/v0.6.0.zip

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 (host system) 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 (host system) of the registered user, used by the TLS ftp server.

FTP_CERTFILE

Certificate (host system) 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{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.1 (2019-12-10)

  • Include the certificate in the source package

  • Use a bigger certificate

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.

Metadata

Release files for pytest-localftpserver 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-localftpserver 1.1.2
File Size Uploaded
pytest_localftpserver-1.1.2.tar.gz 41.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-localftpserver 1.1.2
File Interpreter ABI Platform
pytest_localftpserver-1.1.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 63.0 kB

Release files / pytest_localftpserver-1.1.2.tar.gz

Download URL pytest_localftpserver-1.1.2.tar.gz
Size 41.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d6f323d039b753aeceae732a55966a586ace4c4061b4f65b235ea4cdc34c88c0
BLAKE2b-256 checksum
How to use checksums
0e35e5d52a429de7ed0d67a5c7db5169d14ba5429a39c84ab18f354cbdf12887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

Release files / pytest_localftpserver-1.1.2-py2.py3-none-any.whl

Download URL pytest_localftpserver-1.1.2-py2.py3-none-any.whl
Size 21.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
753bc7c674b8ffcb8a8112734f4092d41f45d5c4f1fa578d64a404b5e719c684
BLAKE2b-256 checksum
How to use checksums
dfecb6eccbb6f89754a2b1fc857d5b92885c1e213242aee9e0a24241173c21e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

Release history Release notifications | RSS feed

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.2.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

This release

1.1.2 This release

2 release files

1.0.1

2 release files

1.0.0

1 release file

0.5.1

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page