Используйте менеджеров в Factory-Boy для моделей
Используйте Factory-boy для операции извлечения без использования БД для тестового случая.
У меня есть такая простая модель:
class Student(models.Model):
name = models.CharField(max_length=20) `
Получить все: Student.objects.all()
С фабричным мальчиком:
class StudentFactory(factory.django.DjangoModelFactory):
class Meta:
model = Student
Есть ли способ сделать StudentFactory.objects.all() ?
Когда я вызываю метод all() в моей фабрике, я хотел бы вернуть список QuerySet, созданных мной. Пример: [QuerySet_1, QuerySet_2] # Not Database.
С помощью этого я могу изменить данные из DB в память в моем тесте.
Вам могут понадобиться методы create_batch и build_batch, в зависимости от того, хотите ли вы сохранить вновь созданные экземпляры в базе данных test
или нет.
Вот пример, который я скопировал и адаптировал из документации factory-boy :
# --- models.py
class StudentFactory(factory.django.DjangoModelFactory):
class Meta:
model = Student
# --- test_student_factory.py
from . import factories
def make_objects():
factories.StudentFactory.create_batch(size=50)