0 Làm thế nào để Mock django xâu chuỗi truy vấn bằng cách sử dụng python unittest

câu hỏi được tạo ra tại 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)
-------------------- Lỗi1 -------------------------- ---

mymodel_alias.filter.return_value.exists.return_value = Đúng AttributionError: đối tượng 'list' không có thuộc tính 'tồn tại'

Lưu ý

Nếu chúng tôi thay đổi dưới đây là mymodel_alias.filter.return_value = [MyModel_Obj] ==== đến ==== mymodel_alias.filter.return_value = MyModel_Obj

-------------------- Lỗi2 -------------------------- ---

nâng cao AttributionError ("Đối tượng giả không có thuộc tính% r"% name) AttributionError: Đối tượng giả không có thuộc tính 'tồn tại'

    
- 1
0 Câu trả lời                              0                         
nguồn đặt đây