我知道如何修补我的方法:
@patch('common.connections.upload_image')
def test_upload(self, mocked_upload_image):
mocked_upload_image.return_value = 'Mocked url'
这将在文件夹 common
的模块 connections
中修补我的方法 upload_image
(我正在使用 Django,文件夹 common
位于根)。
但我想从 Django Rest 框架中修补序列化程序,它位于 venv.lib.python2.7.site-packages.rest_framework.serializers.BaseSerializer.is_valid
所以我尝试了:
@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
位于同一个文件夹中。
那么如何给这个库方法打补丁呢?
最佳答案
尝试使用 @patch('rest_framework.serializers.BaseSerializer.is_valid')
关于Python 测试。 venv 库中的补丁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362090/