From 13b97de9d7722b8030809bfb83590e7074898fca Mon Sep 17 00:00:00 2001 From: John Date: Sat, 19 Aug 2023 15:31:53 -0400 Subject: [PATCH] Override _after_postgeneration to force save in User factory (#4534) * Override _after_postgeneration to force save Saving in _after_postgeneration was automatic in Factory Boy versions below 4.0, but must be done explicitly in newer versions. * Clean up formatting --- .../{{cookiecutter.project_slug}}/users/tests/factories.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/factories.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/factories.py index 4b86f798..bebd8adc 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/factories.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/users/tests/factories.py @@ -29,6 +29,13 @@ class UserFactory(DjangoModelFactory): ) self.set_password(password) + @classmethod + def _after_postgeneration(cls, instance, create, results=None): + """Save again the instance if creating and at least one hook ran.""" + if create and results and not cls._meta.skip_postgeneration_save: + # Some post-generation hooks ran, and may have modified us. + instance.save() + class Meta: model = get_user_model() django_get_or_create = ["{{cookiecutter.username_type}}"]