pytest插件,用于本地测试sftp服务器连接。
项目描述
pytest-sftpserver是pytest插件,提供本地SFTP服务器 fixture。
此fixture提供的SFTP服务器内容不是来自文件,而是直接来自Python对象。
快速入门
假设您想测试一个从SFTP服务器下载文件的函数
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 sftpclient.open(path, "r") as sftp_file:
return sftp_file.read()
此插件允许您通过提供名为sftpserver的pytest fixture来测试此类函数,而无需启动外部SFTP服务器。您只需将名为sftpserver的参数添加到测试函数中即可使用它
def test_sftp_fetch(sftpserver):
with sftpserver.serve_content({'a_dir': {'somefile.txt': "File content"}}):
assert get_sftp_file(sftpserver.host, sftpserver.port, "user",
"pw", "/a_dir/somefile.txt") == "File content"
从该示例中可以看出,sftpserver直接从Python对象提供内容,而不是从文件。
安装
pip install pytest-sftpserver
支持的Python版本
此软件包支持以下Python版本
2.7, 3.5 - 3.7
待办事项
添加更多文档
添加更多使用示例
添加待办事项 :)
版本历史
1.3.0 - 2019-09-16
已更新支持的Python版本为2.7,3.5 - 3.7。
删除了对3.4的(官方)支持。
使用black,isort和flake8检查/格式化代码。
修复.read()的返回类型。(#15,感谢@WeatherGod)
支持写入操作中的offset参数。(#11,#16,感谢@DrNecromant)
1.2.0 - 2018-03-28
已更新支持的Python版本为2.7、3.4-3.6。取消了对2.6和3.2、3.3版本的官方支持。
现在内部始终使用posixpath,以避免在Windows上运行时出现问题(感谢@dundeemt #7, #8)
修复了损坏的readme徽章(感谢@movermeyer #14)
1.1.2 - 2015-06-01
修复了状态大小计算中的错误(#4)
修复了mkdir()覆盖现有内容的错误(#5)
感谢@zerok提供的错误报告和配套测试。
1.1.1 - 2015-04-04
修复了针对不存在‘文件’的损坏的chmod()行为(感谢@dundeemt)
1.1.0 - 2014-10-15
修复了针对不存在‘文件’的损坏的stat()行为
略微增加了测试覆盖率
1.0.2 - 2014-07-27
修复了在Python 2.6上的损坏测试
1.0.1 - 2014-07-27
添加了对Python 3.2的支持
清理了tox配置
1.0.0 - 2014-07-18
初始发布
许可证
许可协议为MIT许可。请参阅文件LICENSE。
灵感来源
此插件实现和想法部分基于
Twisted Conch in 60 Seconds系列(尽管我最终没有使用twisted,但这对于理解SFTP内部机制非常有帮助)
项目详情
pytest-sftpserver-1.3.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b7ac34a23f63d77e27f67b6a81c9418243733f027eeb8a3061d965b2da7e5cab |
|
MD5 | 475cf25217f9e9c675ee748aa5b038f2 |
|
BLAKE2b-256 | 0545f0c545cf1bee1556fed7fb3e7eea77a4691255939522b1d677ecb2c04be8 |
pytest_sftpserver-1.3.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c5e8a37049866d4eabc711db9f1c09e1c02ab72ba290f5fd244939c9a188042f |
|
MD5 | 81d10792203e4e7e5d80f18aee5b46e5 |
|
BLAKE2b-256 | 5c07a66ce67849514133361887636e0ca187e894bca241686adedd414a06cb50 |