From 7a0ee77bbfcb44bab7c872d38f89346969824f1a Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Mon, 8 May 2017 21:09:56 +0200 Subject: [PATCH] Add Remark factory --- scipost/factories.py | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/scipost/factories.py b/scipost/factories.py index 7381d6173..a10f06c56 100644 --- a/scipost/factories.py +++ b/scipost/factories.py @@ -4,16 +4,16 @@ import random from django.contrib.auth import get_user_model from django.contrib.auth.models import Group -from django_countries.data import COUNTRIES +from submissions.models import Submission -from .models import Contributor, EditorialCollege, EditorialCollegeFellowship +from .models import Contributor, EditorialCollege, EditorialCollegeFellowship, Remark from .constants import TITLE_CHOICES +from django_countries.data import COUNTRIES +from faker import Faker -class ContributorFactory(factory.django.DjangoModelFactory): - class Meta: - model = Contributor +class ContributorFactory(factory.django.DjangoModelFactory): title = random.choice(list(dict(TITLE_CHOICES).keys())) user = factory.SubFactory('scipost.factories.UserFactory', contributor=None) status = 1 # normal user @@ -22,6 +22,10 @@ class ContributorFactory(factory.django.DjangoModelFactory): country_of_employment = factory.Iterator(list(COUNTRIES)) affiliation = factory.Faker('company') + class Meta: + model = Contributor + django_get_or_create = ('user',) + class VettingEditorFactory(ContributorFactory): @factory.post_generation @@ -32,9 +36,6 @@ class VettingEditorFactory(ContributorFactory): class UserFactory(factory.django.DjangoModelFactory): - class Meta: - model = get_user_model() - username = factory.Faker('user_name') password = factory.PostGenerationMethodCall('set_password', 'adm1n') email = factory.Faker('safe_email') @@ -44,6 +45,9 @@ class UserFactory(factory.django.DjangoModelFactory): # When user object is created, associate new Contributor object to it. contributor = factory.RelatedFactory(ContributorFactory, 'user') + class Meta: + model = get_user_model() + @factory.post_generation def groups(self, create, extracted, **kwargs): # If the object is not saved, we cannot use many-to-many relationship. @@ -58,17 +62,27 @@ class UserFactory(factory.django.DjangoModelFactory): class EditorialCollegeFactory(factory.django.DjangoModelFactory): + discipline = random.choice(['Physics', 'Chemistry', 'Medicine']) + class Meta: model = EditorialCollege django_get_or_create = ('discipline', ) - discipline = random.choice(['Physics', 'Chemistry', 'Medicine']) - class EditorialCollegeFellowshipFactory(factory.django.DjangoModelFactory): - class Meta: - model = EditorialCollegeFellowship - college = factory.Iterator(EditorialCollege.objects.all()) contributor = factory.Iterator(Contributor.objects.exclude( user__username='deleted').order_by('?')) + + class Meta: + model = EditorialCollegeFellowship + + +class SubmissionRemarkFactory(factory.django.DjangoModelFactory): + contributor = factory.Iterator(Contributor.objects.all()) + submission = factory.Iterator(Submission.objects.all()) + date = factory.Faker('date_time_this_decade') + remark = factory.lazy_attribute(lambda x: Faker().paragraph()) + + class Meta: + model = Remark -- GitLab