datatracker/ietf/liaisons/factories.py
2023-09-05 09:54:30 -05:00

53 lines
1.7 KiB
Python

import factory
from ietf.group.factories import GroupFactory
from ietf.liaisons.models import LiaisonStatement, LiaisonStatementEvent, LiaisonStatementAttachment
class LiaisonStatementFactory(factory.django.DjangoModelFactory):
class Meta:
model = LiaisonStatement
skip_postgeneration_save = True
title = factory.Faker('sentence')
from_contact = factory.SubFactory('ietf.person.factories.EmailFactory')
purpose_id = 'comment'
body = factory.Faker('paragraph')
state_id = 'posted'
@factory.post_generation
def from_groups(obj, create, extracted, **kwargs):
if create:
if extracted:
obj.from_groups.set(extracted)
else:
obj.from_groups.add(GroupFactory(type_id='sdo'))
@factory.post_generation
def to_groups(obj, create, extracted, **kwargs):
if create:
if extracted:
obj.to_groups.set(extracted)
else:
obj.to_groups.add(GroupFactory(type_id='wg'))
class LiaisonStatementEventFactory(factory.django.DjangoModelFactory):
class Meta:
model = LiaisonStatementEvent
type_id = 'posted'
by = factory.SubFactory('ietf.person.factories.PersonFactory')
statement = factory.SubFactory(LiaisonStatementFactory)
desc = factory.Faker('sentence')
class LiaisonStatementAttachmentFactory(factory.django.DjangoModelFactory):
class Meta:
model = LiaisonStatementAttachment
statement = factory.SubFactory(LiaisonStatementFactory)
document = factory.SubFactory('ietf.doc.factories.BaseDocumentFactory',
type_id='liai-att',
# TODO: Make name more convenient (the default now is to try to generate a draftname)
)