Source code for comments.factories

__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"


import pytz
import random
import factory

from commentaries.models import Commentary
from scipost.models import Contributor
from submissions.models import Submission, Report
from theses.models import ThesisLink

from .constants import STATUS_VETTED
from .models import Comment

from faker import Faker


[docs]class CommentFactory(factory.django.DjangoModelFactory): status = STATUS_VETTED vetted_by = factory.Iterator(Contributor.objects.all()) author = factory.Iterator(Contributor.objects.all()) comment_text = factory.Faker("paragraph") remarks_for_editors = factory.Faker("paragraph") file_attachment = Faker().file_name(extension="pdf") date_submitted = factory.Faker("date_time_this_decade", tzinfo=pytz.utc) # Categories is_cor = factory.Faker("boolean", chance_of_getting_true=20) is_rem = factory.Faker("boolean", chance_of_getting_true=20) is_que = factory.Faker("boolean", chance_of_getting_true=20) is_ans = factory.Faker("boolean", chance_of_getting_true=20) is_obj = factory.Faker("boolean", chance_of_getting_true=20) is_rep = factory.Faker("boolean", chance_of_getting_true=20) is_val = factory.Faker("boolean", chance_of_getting_true=20) is_lit = factory.Faker("boolean", chance_of_getting_true=20) is_sug = factory.Faker("boolean", chance_of_getting_true=20) class Meta: model = Comment abstract = True
[docs]class CommentaryCommentFactory(CommentFactory): content_object = factory.SubFactory("commentaries.factories.CommentaryFactory")
[docs]class SubmissionCommentFactory(CommentFactory): content_object = factory.SubFactory("submissions.factories.Submission") @factory.post_generation def replies(self, create, extracted, **kwargs): if create: for i in range(random.randint(0, 2)): ReplyCommentFactory(content_object=self)
[docs]class ReplyCommentFactory(CommentFactory): content_object = factory.SubFactory(SubmissionCommentFactory, replies=False) is_author_reply = factory.Faker("boolean")
[docs]class ThesislinkCommentFactory(CommentFactory): content_object = factory.SubFactory("theses.factories.ThesisLinkFactory")
[docs]class ReportCommentFactory(CommentFactory): content_object = factory.SubFactory("submissions.factories.ReportFactory")