【问题标题】:Mocking environment variables with starlette config使用 starlette 配置模拟环境变量
【发布时间】:2023-02-15 22:12:54
【问题描述】:
from starlette.config import Config

config = Config(".env")

SOME_ENV_VAR: str = config("SOME_ENV_VAR", cast=str, default="abc")

我正在寻找一种方法来模拟 SOME_ENV_VAR 的值以进行单元测试。有这样的选择吗?

# mock config somehow so that config.SOME_ENV_VAR = "xyz"
def some_test():
    assert config.SOME_ENV_VAR == "xyz"

【问题讨论】:

  • 由于环境变量首先由 Config 读取 - 如何在调用测试之前将环境变量设置为预期值? (例如通过夹具)

标签: unit-testing mocking fastapi


【解决方案1】:

你可以使用 Python 的 unittest.mock.patch method

from unittest.mock import patch
from your_config_module import config

@patch('config.SOME_ENV_VAR', 'xyz')
def some_test():
    assert config.SOME_ENV_VAR == "xyz"

【讨论】:

    猜你喜欢
    • 2022-08-13
    • 2013-05-27
    • 2012-01-11
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多