Используйте менеджеров в 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)
Вернуться на верх