在pytest案例中使用的加密密码存储
pytest-securestore的Python项目详细描述
在pytest案例中使用的加密密码存储
这个pytest插件是用Cookiecutter和@hackebrot的cookiecutter-pytest-plugin模板生成的。
功能
提供一种在测试repo中包含加密数据的方法,以便项目团队成员可以共享测试帐户数据(登录名、密码、密钥),而只需共享解密密码并将文件名存储在存储库之外。
要求
SecureStore利用了Marco Bellacchini的Pyescarcrypt: “pyaescrypt是一个python 3文件加密模块和脚本,使用aes256-cbc对文件和二进制流进行加密/解密。”
文件必须格式化为yaml数据(YAML Reference),并将加载到python字典中。
用法
一般山药布局:
---# a commenta_general_user:username:the_usernamepassword:a_passwordusertype:some_defined_type...
加密yaml文件(file encryption):
import osimport pyAesCryptbuffer_size = 64 * 1024# 64Kfilename = os.getenv('SECURE_STORE_FILE')password = os.getenv('SECURE_STORE_PASSWORD')pyAesCrypt.encryptFile("/path/to/yaml/file", filename, password, buffer_size)
在存储库中包含加密文件。
在测试中:
def test_get_store_values(store):# one way to get the valueuser = store.get('a_general_user')username = user['username']# or anotherusername = store.get('a_general_user').get('username')# or even anotherpassword = store.get('a_general_user')['password']# oruser_type = store['a_general_user']['usertype']# ...some_site.log_in(username, password, user_type)
开始:
带有环境变量的cli:
$ pytest --secure-store-filename=$SECURE_STORE_FILE --secure-store-password=$SECURE_STORE_PASSWORD
贡献
我们非常欢迎您的贡献。测试可以用tox运行,请确保 在提交请求之前,覆盖范围至少保持不变。
许可证
“pytest securestore”是根据MIT许可证的条款发布的免费开源软件
问题
如果您遇到任何问题,请file an issue连同详细说明。