现在我必须测试send_formatted_email是否使用预期的参数调用send_email.为此我试图使用补丁模拟send_email,但它没有被嘲笑.
test.py
@patch('app.util.send_email')def test_send_formatted_email(self,mock_send_email): mock_send_email.return_value = True response = send_formatted_email(self.comment,to_email) mock_send_email.call_args_List ....
vIEws.py
def send_formatted_email(comment,to_email): ... message = comment.comment subject = 'Comment posted' from_email = comment.user.email ... return send_email(subject,message,to_email,from_email)
util.py
def send_email(subject,to,from): return requests.post( ... )
我甚至尝试过app.util.send_email = Magicmock(return_value = True),但这也无效.知道我做错了什么吗?
解决方法 像 jonrsharpe已经提到的那样,在 another question下已经有了答案.在我的情况下,我无法使用提供的替代方案之一(重新加载或修补我自己的模块).
但我现在只是在使用之前导入所需的方法:
def send_formatted_email(comment,to_email): ... message = comment.comment subject = 'Comment posted' from_email = comment.user.email ... from app.util import send_email return send_email(subject,from_email)
这将在您修补后加载模块方法.
缺点:
>导入在每次方法调用之前执行.
总结以上是内存溢出为你收集整理的python – 模拟不工作模块功能全部内容,希望文章能够帮你解决python – 模拟不工作模块功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)