0 Вопрос: Как смоделировать django цепочечные запросы, используя python unittest

вопрос создан в Wed, May 8, 2019 12:00 AM

func_to_test.py

from models import MyModel
def myFunc():
  #Query 1
  queryset_exists = MyModel.objects.filter(id=0).exists())

  #Query 2
  queryset_exists = MyModel.objects.filter(id=0)

  return True

test.py

from models
from func_to_test import myFunc
from unittest.mock import MagicMock, patch, Mock
class TestMyFunction(unittest.TestCase):
@patch('models.MyModel.objects')
def test_myFunc(self, mymodel_alias):

    # Creating mock object for filter query response
    MyModel_Obj = MagicMock(spec=MyModel)
    MyModel_Obj.id=1

    mymodel_alias.filter.return_value = [MyModel_Obj]
    mymodel_alias.filter.return_value.exists.return_value = True

    self.assertEqual(myFunc(), True)

-------------------- Error1 -------------------------- ---

mymodel_alias.filter.return_value.exists.return_value = True AttributeError: у объекта «список» нет атрибута «существует»

Примечание

Если мы изменим ниже как mymodel_alias.filter.return_value = [MyModel_Obj] ==== to ==== mymodel_alias.filter.return_value = MyModel_Obj

-------------------- Error2 -------------------------- ---

повысить AttributeError («У фиктивного объекта нет атрибута% r»% name) AttributeError: Mock-объект не имеет атрибута "Существует"

    
- 1
0 ответов                              0                         
источник размещен Вот