编写一个用于修补obj的contextmanager

2024-10-02 18:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的Python 3测试代码中,我有很多这样的语句:

from unittest.mock import patch

user = User(...)
with patch.object(MyAuthenticationClass, 'authenticate', return_value=(user, 'token'):
    # do something

现在我想写为:

^{pr2}$

我如何编写一个方法request_user作为上下文管理器,这样它就可以用这种方式修补身份验证,并删除{}块之后的修补程序?在


Tags: fromimportreturnobjectvaluewith语句unittest
1条回答
网友
1楼 · 发布于 2024-10-02 18:23:09

您可以这样编写一个简单的包装:

def request_user(user):
    return patch.object(MyAuthenticationClass, 'authenticate', return_value=(user, 'token')

使用它:

^{pr2}$

相关问题 更多 >