1 # -*- coding: utf-8 -*-
2 from django
.contrib
.webdesign
import lorem_ipsum
9 class XGroupFactory(factory
.DjangoModelFactory
):
10 FACTORY_FOR
= models
.XGroup
12 name
= factory
.Sequence(lambda n
: u
"Groupe n°%s" % n
)
13 short
= factory
.Sequence(lambda n
: u
"Groupe%s" % n
)
14 kind
= factory
.InfiniteIterator(k
[0] for k
in models
.XGroup
.KIND_CHOICES
)
15 domain
= models
.XGroup
.DOMAIN_REGION
16 web
= u
"http://google.fr"
17 description
= factory
.LazyAttribute(lambda _
: lorem_ipsum
.paragraph())
20 class AccountFactory(factory
.DjangoModelFactory
):
21 FACTORY_FOR
= models
.Account
23 username
= factory
.Sequence('mr_robinson{0}'.format
)
25 last_name
= factory
.Sequence(lambda n
: u
"D%se" %
((n %
10) * u
"o"), type=int)
30 def _prepare(cls
, create
, **kwargs
):
31 password
= kwargs
.pop('password', None)
32 user
= super(AccountFactory
, cls
)._prepare(create
, **kwargs
)
33 if password
is not None:
34 user
.set_password(password
)
40 class SuperAccountFactory(AccountFactory
):
44 class MembershipFactory(factory
.DjangoModelFactory
):
45 FACTORY_FOR
= models
.Membership
47 xgroup
= factory
.SubFactory(XGroupFactory
)
48 xuser
= factory
.SubFactory(AccountFactory
)
49 state
= models
.MembershipWorkflow
.states
.enabled