|-- my_module
| |-- __init__.py
| |-- function.py
`-- test.py
в function.py:функция патч с таким же именем, как модуль питона Джанго издеваться
import other_function
def function():
doStuff()
other_function()
return
в __init__.py
from .function import function
в моем test.py
from django.test import TestCase
from mock import patch
from my_module import function
class Test(TestCase):
@patch('my_module.function.other_function')
def function_test(self, mock_other_function):
function()
Когда я запустил это, я получил Attri buteError:
<@task: my_module.function.function of project:0x7fed6b4fc198> does not have the attribute 'other_function'
Это означает, что я пытаюсь исправить функцию «функция» вместо функции «функции» модуля. Я не знаю, как понять, что я хочу исправить модуль.
Я также хотел бы избежать переименования моего модуля или функции.
Любые идеи?
[Редактировать] Вы можете найти пример в https://github.com/vthorey/example_mock перспективе
python manage.py test
У вас есть решение для этого? –
@HaykDavtyan Nope. Вы можете повысить свой вопрос, если хотите увеличить видимость;) –