A PyTest plugin which provides an FTP fixture for your tests
Project description
PyTest FTP Server
A PyTest plugin which provides an FTP fixture for your tests
Free software: MIT license
Documentation: https://pytest-localftpserver.readthedocs.io/en/latest/index.html
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{36,37,38,39,310} [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 = pytest 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest_localftpserver-1.1.4.tar.gz
.
File metadata
- Download URL: pytest_localftpserver-1.1.4.tar.gz
- Upload date:
- Size: 44.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | acc181bfafc1f64befda90bc3bf2fbcd7886165a57921f57c21199a13aeffca7 |
|
MD5 | 4a947669935c6ceab80a3795cabaee32 |
|
BLAKE2b-256 | a9d8539d76168965857147ec5c6382a56139f76545bdcd14c85166a8bebbbe23 |
File details
Details for the file pytest_localftpserver-1.1.4-py2.py3-none-any.whl
.
File metadata
- Download URL: pytest_localftpserver-1.1.4-py2.py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0df0efde5fd84f3264e45424d1095eb0da31fdb526b41629d830803e3d4d704 |
|
MD5 | e25ee41748bfe7624e80a0f6cdd21b5c |
|
BLAKE2b-256 | 3aeaa7b1ca73b71f0faab2c74b0a8e82fe16c9e9d4169cdf99551dda86ba499a |