目前,我有一个文件包含
DATABASE_URL = os.environ.get("DATABASE_URL") engine = create_async_engine(DATABASE_URL, echo=False, future=True)
现在,我想在pytest中用monkeypatch覆盖DATABASE_URL,但遗憾的是,无论我尝试什么,它都存储为“旧”值。你知道我该怎么做吗?
rsaldnfx1#
我认为在导入模块之前简单地修改环境而不是monkeypatching会是一个更好的解决方案:
import os os.environ['DATABASE_URL'] = 'some other value' # os.environ.get("DATABASE_URL") will now return the new value import mymodule
Monkeypatching实际上是为了修改 * 行为 *(即函数),而不是 * 环境 *。
1条答案
按热度按时间rsaldnfx1#
我认为在导入模块之前简单地修改环境而不是monkeypatching会是一个更好的解决方案:
Monkeypatching实际上是为了修改 * 行为 *(即函数),而不是 * 环境 *。