# -*- coding: utf-8 -*-
-from django.contrib.webdesign import lorem_ipsum
import factory
from . import models
-class XGroupFactory(factory.DjangoModelFactory):
- FACTORY_FOR = models.XGroup
-
- name = factory.Sequence(lambda n: u"Groupe n°%s" % n)
- short = factory.Sequence(lambda n: u"Groupe%s" % n)
- kind = factory.InfiniteIterator(k[0] for k in models.XGroup.KIND_CHOICES)
- domain = models.XGroup.DOMAIN_REGION
- web = u"http://google.fr"
- description = factory.LazyAttribute(lambda _: lorem_ipsum.paragraph())
-
-
class AccountFactory(factory.DjangoModelFactory):
FACTORY_FOR = models.Account
username = factory.Sequence('mr_robinson{0}'.format)
first_name = u"John"
last_name = factory.Sequence(lambda n: u"D%se" % ((n % 10) * u"o"), type=int)
- password = None
+ password = factory.PostGenerationMethodCall('set_password', '')
is_staff = True
- @classmethod
- def _prepare(cls, create, **kwargs):
- password = kwargs.pop('password', None)
- user = super(AccountFactory, cls)._prepare(create, **kwargs)
- if password is not None:
- user.set_password(password)
- if create:
- user.save()
- return user
-
class SuperAccountFactory(AccountFactory):
is_superuser = True
-
-
-class MembershipFactory(factory.DjangoModelFactory):
- FACTORY_FOR = models.Membership
-
- xgroup = factory.SubFactory(XGroupFactory)
- xuser = factory.SubFactory(AccountFactory)
- state = models.MembershipWorkflow.states.enabled