Factory boy RecursionError: maximum recursion depth exceeded

Viewed 109

I have 2 models, django User model and Employee

class Employee(TimeStampedModel):

  creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name="employees")
  first_name = models.CharField(max_length=255, blank=True)
  last_name = models.CharField(max_length=255, blank=True)
  phone = models.CharField(validators=[phone_regex], max_length=17, blank=True)
  email = models.EmailField(validators=[email_regex], max_length=255, blank=True)
  user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True, related_name="employee")

2 factories:

class UserFactory(factory.django.DjangoModelFactory):
  class Meta:
      model = User

  employee = factory.RelatedFactory(
      "control_room.tests.factories.EmployeeFactory",
      factory_related_name='user'
  )
  first_name = fake.first_name()
  last_name = fake.last_name()
  username = factory.Sequence(lambda n: "user_%d" % n)
  email = fake.ascii_email()

class EmployeeFactory(factory.django.DjangoModelFactory):
  class Meta:
      model = Employee

  creator = factory.SubFactory(UserFactory)
  first_name = fake.first_name()
  last_name = fake.last_name()
  phone = "+88005553535"
  email = fake.ascii_email()
  user = factory.SubFactory(UserFactory)

so Employee model has 2 relations to User model (ForeignKey - creator and OneToOneField - user)

when I create Factory boy models I get: RecursionError: maximum recursion depth exceeded

How do I avoid this error?

0 Answers
Related