【发布时间】:2017-02-21 08:24:13
【问题描述】:
我知道如何修补我的方法:
@patch('common.connections.upload_image')
def test_upload(self, mocked_upload_image):
mocked_upload_image.return_value = 'Mocked url'
这将修补我在模块connections 中的方法upload_image 在文件夹common 中(我正在使用Django,文件夹common 位于根目录中)。
但我想从位于venv.lib.python2.7.site-packages.rest_framework.serializers.BaseSerializer.is_valid 的 Django Rest 框架中修补序列化程序
所以我尝试了:
@patch('venv.lib.python2.7.site-packages.rest_framework.serializers.BaseSerializer.is_valid')
def test_upload(self, mocked_is_valid):
mocked_is_valid.return_value = True # this doesn't work
但它不起作用。说ImportError: No module named venv。
我的venv 文件夹与上面提到的common 所在的文件夹相同。
那么如何修补这个库方法呢?
【问题讨论】:
-
您可以从 rest_framework.serializers.BaseSerializer.is_valid 对其进行修补,并且您可以保留从 virtualenv 到库的路径。
标签: python django testing mocking