2017-02-21 49 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 лежит в корне).

Но я хочу, чтобы залатать сериалайзер из рамок Джанго отдыха, которая находится в 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

 Смежные вопросы

  • Нет связанных вопросов^_^