编写需要用户名和密码的 Python 功能测试

2024-03-18

我有一个 API 包装类WfcAPI用 Python 3 编写,我想使用它进行测试PyUnit https://docs.python.org/3/library/unittest.html.

The setUpClass() for WfcAPI涉及登录到外部 API 服务器。当前功能测试实现有密码使用 Base64 编码进行混淆 https://stackoverflow.com/a/157975/3357935,但这就是far出于安全原因,这是一个理想的解决方案。

import unittest
import base64
from pykronos import WfcAPI

class Test(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        password = base64.b64decode("U29tZVBhc3N3b3Jk").decode("utf-8")
        self.kronos = WfcAPI("SomeUsername", password) 

我希望能够快速运行 API 包装器的功能测试,但我也想确保我的用户名和密码不包含在代码中。

如何为需要用户名和密码的操作设置 Python 功能测试?


只是为了澄清:如果它是一个单元测试,你不应该针对真正的外部 API 进行测试,你应该伪造它的响应。单元测试应该只关心被测对象的逻辑(WfcAPI) 而不是它的子依赖项。

现在,如果您进行功能测试,将真实数据发送到 API,则可以通过将凭据存储在.env该文件不会与其余代码一起提交。

这个Python库 https://github.com/theskumar/python-dotenv提供了该功能,并在其自述文件中为您提供了一个示例。你最终会得到这样的结果:

# .env

PASSWORD=some_password
USERNAME=SomeUsername

然后在你的settings.py:

PASSWORD = os.environ.get("PASSWORD")
USERNAME = os.environ.get("USERNAME")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编写需要用户名和密码的 Python 功能测试 的相关文章

随机推荐