62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
# Copyright The IETF Trust 2015-2020, All Rights Reserved
|
|
import datetime
|
|
import debug # pyflakes:ignore
|
|
import factory
|
|
|
|
from ietf.group.models import Group, Role, GroupEvent, GroupMilestone
|
|
from ietf.review.factories import ReviewTeamSettingsFactory
|
|
|
|
class GroupFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = Group
|
|
django_get_or_create = ('acronym',)
|
|
|
|
name = factory.Faker('sentence',nb_words=6)
|
|
acronym = factory.Sequence(lambda n: 'acronym%d' %n)
|
|
state_id = 'active'
|
|
type_id = 'wg'
|
|
list_email = factory.LazyAttribute(lambda a: '%s@ietf.org'% a.acronym)
|
|
uses_milestone_dates = True
|
|
|
|
class ReviewTeamFactory(GroupFactory):
|
|
|
|
type_id = 'review'
|
|
|
|
@factory.post_generation
|
|
def settings(obj, create, extracted, **kwargs):
|
|
ReviewTeamSettingsFactory.create(group=obj,**kwargs)
|
|
|
|
class RoleFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = Role
|
|
|
|
group = factory.SubFactory(GroupFactory)
|
|
person = factory.SubFactory('ietf.person.factories.PersonFactory')
|
|
email = factory.LazyAttribute(lambda obj: obj.person.email())
|
|
|
|
class GroupEventFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = GroupEvent
|
|
|
|
group = factory.SubFactory(GroupFactory)
|
|
by = factory.SubFactory('ietf.person.factories.PersonFactory')
|
|
type = 'comment'
|
|
desc = factory.Faker('paragraph')
|
|
|
|
class BaseGroupMilestoneFactory(factory.DjangoModelFactory):
|
|
class Meta:
|
|
model = GroupMilestone
|
|
|
|
group = factory.SubFactory(GroupFactory)
|
|
state_id = 'active'
|
|
desc = factory.Faker('sentence')
|
|
|
|
class DatedGroupMilestoneFactory(BaseGroupMilestoneFactory):
|
|
group = factory.SubFactory(GroupFactory, uses_milestone_dates=True)
|
|
due = datetime.datetime.today()+datetime.timedelta(days=180)
|
|
|
|
class DatelessGroupMilestoneFactory(BaseGroupMilestoneFactory):
|
|
group = factory.SubFactory(GroupFactory, uses_milestone_dates=False)
|
|
order = factory.Sequence(lambda n: n)
|
|
|