You need a temporary ftp server in your python unittests?
This small library provides you the class called FTPServerContext.
Uses pyftpdlib to run the ftp-server.
Supports:
ftp
ftps (FTP over TLS)
Does not support:
sftp (FTP via SSH)
Usage
Usage:
temp_dir = tempfile.mkdtemp()
with FTPServerContext(temp_dir) as ftp_context:
# now you have these variables for testing your ftp client code:
ftp_context.ip_address
ftp_context.test_user_name
ftp_context.test_user_password
ftp_context.port
Install
Via pip:
pip install ftpservercontext
Internals
With subprocess.Popen() a script called serve_directory_via_ftp gets called.
You provide FTPServerContext a directory and the ftp server serves this directory via ftp running on ‘127.0.0.1’ and a matching open port.
If the python interpreter leaves the with-block, then the subprocess running the ftp-server gets automatically terminated.
You can see a working example in the unittest: https://github.com/tbz-pariv/ftpservercontext/blob/master/ftpservercontext/tests/test_ftpservercontext.py
Feedback
Feedback is welcome. Just open an issue at github, even if you just want to say “thank you”.
Metadata
Release files for ftpservercontext 2018.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ftpservercontext-2018.3.0.tar.gz | 3.4 kB | Details |
Release files / ftpservercontext-2018.3.0.tar.gz
| Download URL | ftpservercontext-2018.3.0.tar.gz |
|---|---|
| Size | 3.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24b1fe7db0ccc87fd0ddb79a333407ded6906a6cf56945bf154e10e7617c393d
|
|
BLAKE2b-256 checksum How to use checksums |
b4fbfdc294ca6a1f5b3331f0b914f9577c90e19a7e7cd99f89f2eae69a8dc73a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.9.1 pkginfo/1.4.1 requests/2.20.1 setuptools/22.0.5 requests-toolbelt/0.8.0 tqdm/4.17.1 CPython/2.7.12
|