From 743dbeaf1a9aed0dcc1acfe0d1aaeeec5ff572ac Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Thu, 28 Mar 2024 15:55:37 -0400 Subject: [PATCH] test: add factories for Notes & Users with Permissions --- program/tests/factories.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/program/tests/factories.py b/program/tests/factories.py index 1ce0368c..738c6ddc 100644 --- a/program/tests/factories.py +++ b/program/tests/factories.py @@ -1,15 +1,17 @@ from datetime import timedelta -from factory import Sequence +from factory import Sequence, post_generation from factory.django import DjangoModelFactory -from django.contrib.auth.models import User +from django.contrib.auth.models import Permission, User +from django.db.models import QuerySet from django.utils.timezone import now from program.models import ( FundingCategory, Host, Image, License, + Note, RRule, Schedule, Show, @@ -26,6 +28,26 @@ class CommonUserFactory(DjangoModelFactory): username = Sequence(lambda n: "common_%d" % n) +class UserWithPermissionsFactory(DjangoModelFactory): + class Meta: + model = User + + username = Sequence(lambda n: "user_with_perm%d" % n) + + @post_generation + def user_permissions(self, create, extracted, **kwargs): + if not create: + return + + if extracted: + if isinstance(extracted, Permission): + self.user_permissions.add(extracted) + + if isinstance(extracted, QuerySet): + for permission in extracted: + self.user_permissions.add(permission) + + class HostFactory(DjangoModelFactory): class Meta: model = Host @@ -90,3 +112,8 @@ class LicenseFactory(DjangoModelFactory): identifier = "pd" name = "Public Domain" + + +class NoteFactory(DjangoModelFactory): + class Meta: + model = Note -- GitLab