Add factories for events (there might be a factoryboy bug for Xelnor in here)
[xnet] / xnet / events / factories.py
CommitLineData
a5cfffcb
CW
1# -*- coding: utf-8 -*-
2from django.contrib.webdesign import lorem_ipsum
3
4import factory
5
6import datetime
7import django.utils.timezone as timezone
8
9from xnet.accounts import factories as accounts_factories
10from xnet.groups import factories as groups_factories
11
12from . import models
13
14
15class EventFactory(factory.DjangoModelFactory):
16 FACTORY_FOR = models.Event
17
18 short = factory.Sequence(lambda n: u"Event n°%s" % n)
19 main_description = u"Super description d'Event"
20 group = factory.SubFactory(groups_factories.XGroupFactory)
21 creator = factory.SubFactory(accounts_factories.AccountFactory,
22 memberships=factory.RelatedFactory(groups_factories.MembershipFactory, 'user',
23 group=factory.SelfAttribute('...group')))
24
25 simple = False
26
27 registration_begin = factory.LazyAttribute(
28 lambda a: timezone.now() - datetime.timedelta(0, 0, 0, -2))
29 registration_end = factory.LazyAttribute(
30 lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 5))
31 notification_recipient = models.Event.NOTIFICATION_RECIPIENT_CREATOR
32 show_registered = True
33 allow_non_members = True
34 allow_guests = True
35 registration_limit = 500
36
37 start_date = factory.LazyAttribute(
38 lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 5))
39 end_date = factory.LazyAttribute(
40 lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 7))
41
42
43class EventPartFactory(factory.DjangoModelFactory):
44 FACTORY_FOR = models.EventPart
45
46 name = factory.Sequence(lambda n: u"EventPart n°%s" % n)
47 description = u"Super description d'EventPart"
48 event = factory.SubFactory(EventFactory)
49 registration_limit = 250
50 main = False
51
52
53class PriceOptionFactory(factory.DjangoModelFactory):
54 FACTORY_FOR = models.PriceOption
55
56 name = factory.Sequence(lambda n: u"PriceOption n°%s" % n)
57 amount = 1337
58 event_part = factory.SubFactory(EventPartFactory)
59
60
61class RegistrationFactory(factory.DjangoModelFactory):
62 FACTORY_FOR = models.Registration
63
64 user = factory.SubFactory(accounts_factories.AccountFactory)
65 dn_event = factory.SelfAttribute('option.event')
66 option = factory.SubFactory(PriceOptionFactory)
67 date_registered = factory.LazyAttribute(
68 lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 1))