Я пытаюсь выкрикнуть вызов метода сохранения на моделях django.Model. Я использую Mock как мою издевательскую библиотеку.Сфокусированная база данных django save
Я тестирую функцию в файле house_factory.py, который находится в apps.deps.house_factory.
house_factory.py: от apps.market.models импорта Дом
def create_house(location, date, price):
house = House(id=None, date, price)
house.save()
# calculate some stuff and further expand the house instance
# for example house.tag.add("some-tag")
# save after calculations
house.save()
Я хотел бы, чтобы дразнить из модели дома.
class HouseModelMock(mock.Mock):
def save(self):
pass
метод тестирования, является частью класса unittest.TestCase
@patch('apps.deps.house_factory.House', new_callable=HouseModelMock)
def create_house_test(self, MockedHouse):
""" Constants """
DAYS_FROM_TODAY = 55
DATE = datetime.date.today() + datetime.timedelta(days=DAYS_FROM_TODAY)
PRICE = 250000
# A location is also a django module , I'm using factory_boy here for building a 'mocked' location
location = LocationFactory.build()
create_house(DATE, PRICE)
MockedHouse.assert_called_with(None, DATE, PRICE)
MockedHouse.save.assert_called_with()
Если я запускаю этот тест я получаю:
call__ возврата self.call (* ARG, ** kw) MemoryError
Это одна из моих первых попыток серьёзно разобраться с django и тестированием. Так что, возможно, я неправильно настраиваю, чтобы издеваться над вызовом базы данных.
Подходит ни к какой помощи,
Jonas.