2017-02-21 77 views
1

庫補丁的方法,我知道如何修補我的方法:Python測試。從VENV

@patch('common.connections.upload_image') 
def test_upload(self, mocked_upload_image): 
    mocked_upload_image.return_value = 'Mocked url' 

這會修補我的方法upload_image模塊connections文件夾中common(我使用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所在的同一個文件夾中。

那麼如何修補這個庫方法呢?

+1

您可以從rest_framework.serializers.BaseSerializer.is_valid修補它,你可以留下您的virtualenv的路徑圖書館出來。 – Nrzonline

回答

2

嘗試使用@patch('rest_framework.serializers.BaseSerializer.is_valid')

+0

謝謝,這工作,現在不知道如何避免'AssertionError:你必須調用.is_valid()之前訪問.validated_data.' – Snobby