Commit | Line | Data |
---|---|---|
53722fb0 BG |
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 |