Я пишу тест и хочу смоделировать список, который находится в __init__.py
, то есть не под классом.Ссылка на объект: project/app/management/commands/__init__.py
и __init__.py
выглядит примерно так:
my_list_of_dict = [
{
'name': 'option1',
'vesion': 0,
},
{
'name': 'option1',
'vesion': 0,
}
]
Если бы это было в классе, я бы сделал что-то вроде -
@mock.patch.object(Class, 'my_list_of_dict')
но это не так.
Я пробовал что-то вроде
@mock.patch('project.app.management.commands.my_list_of_dict')
def test(self, mock_list):
mock_list.return_value = [{.....}]
Но это не сработало.
РЕДАКТИРОВАТЬ:
Добавление информации о тесте
Это тест:
@mock.patch('project.app.management.commands.my_list_of_dict')
def test_run_command_with_parameters(self, mock_list_of_dict):
mock_list_of_dict.return_value = [
{
'name': 'other_name',
'vesion': 1
}
]
with mock.patch('django.core.management.call_command', return_value=True,
side_effect=None) as call_command_mock:
c = Command()
c.handle()
Это часть команды:
from . import my_list_of_dict
class Command(BaseCommand):
def handle(self, *args, **options):
for dict in my_list_of_dict:
.....
Теперь, когда тест попадет в handle()
часть - получает исходное значение, а не смоделированное