| 1 | # -*- coding: utf-8 -*- |
| 2 | |
| 3 | import factory |
| 4 | |
| 5 | from . import models |
| 6 | |
| 7 | |
| 8 | class XGroupFactory(factory.DjangoModelFactory): |
| 9 | FACTORY_FOR = models.XGroup |
| 10 | |
| 11 | name = factory.Sequence(lambda n: u"Groupe n°%s" % n) |
| 12 | short = factory.Sequence(lambda n: u"Groupe%s" % n) |
| 13 | kind = models.XGroup.KIND_GROUP |
| 14 | domain = models.XGroup.DOMAIN_REGION |
| 15 | |
| 16 | |
| 17 | class AccountFactory(factory.DjangoModelFactory): |
| 18 | FACTORY_FOR = models.Account |
| 19 | |
| 20 | username = factory.Sequence('mr_robinson{0}'.format) |
| 21 | first_name = u"John" |
| 22 | last_name = factory.Sequence(lambda n: u"D%se" % ((n % 10) * u"o"), type=int) |
| 23 | password = None |
| 24 | is_staff = True |
| 25 | |
| 26 | @classmethod |
| 27 | def _prepare(cls, create, **kwargs): |
| 28 | password = kwargs.pop('password', None) |
| 29 | user = super(AccountFactory, cls)._prepare(create, **kwargs) |
| 30 | if password is not None: |
| 31 | user.set_password(password) |
| 32 | if create: |
| 33 | user.save() |
| 34 | return user |
| 35 | |
| 36 | |
| 37 | class SuperAccountFactory(AccountFactory): |
| 38 | is_superuser = True |
| 39 | |
| 40 | |
| 41 | class MembershipFactory(factory.DjangoModelFactory): |
| 42 | FACTORY_FOR = models.Membership |
| 43 | |
| 44 | xgroup = factory.SubFactory(XGroupFactory) |
| 45 | xuser = factory.SubFactory(AccountFactory) |
| 46 | state = models.MembershipWorkflow.states.enabled |