From a5cfffcbef8449a4fdc58b23a3d41a4d4b0e534b Mon Sep 17 00:00:00 2001 From: Corentin Wallez Date: Sat, 30 Mar 2013 02:38:13 +0100 Subject: [PATCH] Add factories for events (there might be a factoryboy bug for Xelnor in here) --- xnet/events/factories.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 xnet/events/factories.py diff --git a/xnet/events/factories.py b/xnet/events/factories.py new file mode 100644 index 0000000..63ac47a --- /dev/null +++ b/xnet/events/factories.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +from django.contrib.webdesign import lorem_ipsum + +import factory + +import datetime +import django.utils.timezone as timezone + +from xnet.accounts import factories as accounts_factories +from xnet.groups import factories as groups_factories + +from . import models + + +class EventFactory(factory.DjangoModelFactory): + FACTORY_FOR = models.Event + + short = factory.Sequence(lambda n: u"Event n°%s" % n) + main_description = u"Super description d'Event" + group = factory.SubFactory(groups_factories.XGroupFactory) + creator = factory.SubFactory(accounts_factories.AccountFactory, + memberships=factory.RelatedFactory(groups_factories.MembershipFactory, 'user', + group=factory.SelfAttribute('...group'))) + + simple = False + + registration_begin = factory.LazyAttribute( + lambda a: timezone.now() - datetime.timedelta(0, 0, 0, -2)) + registration_end = factory.LazyAttribute( + lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 5)) + notification_recipient = models.Event.NOTIFICATION_RECIPIENT_CREATOR + show_registered = True + allow_non_members = True + allow_guests = True + registration_limit = 500 + + start_date = factory.LazyAttribute( + lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 5)) + end_date = factory.LazyAttribute( + lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 7)) + + +class EventPartFactory(factory.DjangoModelFactory): + FACTORY_FOR = models.EventPart + + name = factory.Sequence(lambda n: u"EventPart n°%s" % n) + description = u"Super description d'EventPart" + event = factory.SubFactory(EventFactory) + registration_limit = 250 + main = False + + +class PriceOptionFactory(factory.DjangoModelFactory): + FACTORY_FOR = models.PriceOption + + name = factory.Sequence(lambda n: u"PriceOption n°%s" % n) + amount = 1337 + event_part = factory.SubFactory(EventPartFactory) + + +class RegistrationFactory(factory.DjangoModelFactory): + FACTORY_FOR = models.Registration + + user = factory.SubFactory(accounts_factories.AccountFactory) + dn_event = factory.SelfAttribute('option.event') + option = factory.SubFactory(PriceOptionFactory) + date_registered = factory.LazyAttribute( + lambda a: timezone.now() - datetime.timedelta(0, 0, 0, 1)) -- 2.1.4