pytest-mock - макет функции из модуля - PullRequest
0 голосов
/ 11 июня 2018

У меня есть утилита в моем модуле engine.py, которая импортируется из другого файла:

from main.utils.string import get_random_string

def generate_random_string():
    return get_random_string()

В моем тестовом файле:

def test_generate_random_string(mocker):
    mocker.patch('main.utils.string.get_random_string', return_value='123456')

Однако, он все еще пытаетсяиспользуйте реальную реализацию string.get_random_string вместо созданного мной макета, если только я не изменю свой engine.py на:

from main.utils import string

def generate_random_string():
    return string.get_random_string()

Как я могу выполнить пародийную часть, не импортируя весь stringмодуль к engine.py?

1 Ответ

0 голосов
/ 11 июня 2018

Я успешно достиг этого, изменив mocker.patch('main.utils.string.get_random_string', return_value='123456') на mocker.patch('engine.get_random_string', return_value='123456').

Подробности можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...