本地测试sftp服务器连接的py.test插件。
pytest-sftpserver的Python项目详细描述
pytest sftp server是为pytest提供本地sftp服务器的插件 fixture。
此fixture提供的sftp服务器提供的内容不是来自文件,而是来自 直接从python对象。
快速启动
假设要测试从sftp服务器下载文件的函数:
fromcontextlibimportclosingimportparamikodefget_sftp_file(host,port,username,password,path):withclosing(paramiko.Transport((host,port)))astransport:transport.connect(username=username,password=password)withclosing(paramiko.SFTPClient.from_transport(transport))assftpclient:withsftpclient.open(path,"r")assftp_file:returnsftp_file.read()
这个插件允许测试这些函数,而不必启动外部 通过提供名为sftp server的pytestfixture来实现sftp服务器。你用它 只需将名为sftpserver的参数添加到测试函数:
deftest_sftp_fetch(sftpserver):withsftpserver.serve_content({'a_dir':{'somefile.txt':"File content"}}):assertget_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.4-3.6
待办事项
- 添加更多文档
- 添加更多用法示例
- 添加到操作:)
版本历史记录
1.2.0-2018年3月28日
- 将支持的python版本更新为2.7、3.4-3.6。 放弃对2.6和3.2、3.3的(官方)支持。
- 现在总是在内部使用posixpath以避免在windows上运行时出现问题(7,8,谢谢@dundeemt)
- 修复了损坏的自述徽章(14,谢谢@movermeyer)
1.1.2-2015年6月1日
- 修正了统计大小计算中的错误(4)
- 固定MKDRE()重写现有内容(α5)
感谢@zerok提供的bug报告和附带的测试。
1.1.1-2015年4月4日
-
未定义的“文件”(谢谢)。
1.1.0-2014年10月15日
-
未定义的文件“< /LI>”的固定断裂< CIT> STATE()/cTIT>行为
- 测试覆盖率略有增加
1.0.2-2014年7月27日
- 修复了Python2.6上的中断测试
1.0.1-2014年7月27日
- 添加了Python3.2支持
- 已清除TOX配置
1.0.0-2014年7月18日
- 初始版本
许可证
未经麻省理工学院许可。请参见文件许可证。
灵感
此插件的实现和思想部分基于:
- pytest-localserver
- sftpserver
- Twisted Conch in 60 Seconds系列(尽管我最终没有使用 twisted,这对理解sftp内部非常有帮助)