2020-05-10 23:56:45 +02:00
|
|
|
from gestioncof.models import Event
|
2020-05-10 23:54:21 +02:00
|
|
|
from shared.tests.testcases import (
|
|
|
|
CSVResponseMixin,
|
|
|
|
ViewTestCaseMixin as BaseViewTestCaseMixin,
|
|
|
|
)
|
2018-01-19 17:48:00 +01:00
|
|
|
|
2018-10-06 12:35:49 +02:00
|
|
|
from .utils import create_member, create_staff, create_user
|
2018-01-19 17:48:00 +01:00
|
|
|
|
|
|
|
|
2020-05-10 23:56:45 +02:00
|
|
|
class MegaHelperMixin(CSVResponseMixin):
|
|
|
|
"""
|
|
|
|
Mixin pour aider aux tests du MEGA: création de l'event et de plusieurs
|
|
|
|
inscriptions, avec options et commentaires.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
super().setUp()
|
|
|
|
|
|
|
|
u1 = create_user("u1")
|
|
|
|
u1.first_name = "first"
|
|
|
|
u1.last_name = "last"
|
|
|
|
u1.email = "user@mail.net"
|
|
|
|
u1.save()
|
|
|
|
u1.profile.phone = "0123456789"
|
|
|
|
u1.profile.departement = "Dept"
|
|
|
|
u1.profile.comments = "profile.comments"
|
|
|
|
u1.profile.save()
|
|
|
|
|
|
|
|
u2 = create_user("u2")
|
|
|
|
u2.profile.save()
|
|
|
|
|
|
|
|
m = Event.objects.create(title="MEGA 2018")
|
|
|
|
|
|
|
|
cf1 = m.commentfields.create(name="Commentaires")
|
|
|
|
cf2 = m.commentfields.create(name="Comment Field 2", fieldtype="char")
|
|
|
|
|
|
|
|
option_type = m.options.create(name="Orga ? Conscrit ?")
|
|
|
|
choice_orga = option_type.choices.create(value="Orga")
|
|
|
|
choice_conscrit = option_type.choices.create(value="Conscrit")
|
|
|
|
|
|
|
|
mr1 = m.eventregistration_set.create(user=u1)
|
|
|
|
mr1.options.add(choice_orga)
|
|
|
|
mr1.comments.create(commentfield=cf1, content="Comment 1")
|
|
|
|
mr1.comments.create(commentfield=cf2, content="Comment 2")
|
|
|
|
|
|
|
|
mr2 = m.eventregistration_set.create(user=u2)
|
|
|
|
mr2.options.add(choice_conscrit)
|
|
|
|
|
|
|
|
self.u1 = u1
|
|
|
|
self.u2 = u2
|
|
|
|
self.m = m
|
|
|
|
self.choice_orga = choice_orga
|
|
|
|
self.choice_conscrit = choice_conscrit
|
|
|
|
|
|
|
|
|
2018-01-19 17:48:00 +01:00
|
|
|
class ViewTestCaseMixin(BaseViewTestCaseMixin):
|
|
|
|
"""
|
|
|
|
TestCase extension to ease testing of cof views.
|
|
|
|
|
|
|
|
Most information can be found in the base parent class doc.
|
|
|
|
This class performs some changes to users management, detailed below.
|
|
|
|
|
|
|
|
During setup, three users are created:
|
|
|
|
- 'user': a basic user without any permission,
|
|
|
|
- 'member': (profile.is_cof is True),
|
|
|
|
- 'staff': (profile.is_cof is True) && (profile.is_buro is True).
|
|
|
|
"""
|
|
|
|
|
|
|
|
def get_users_base(self):
|
|
|
|
return {
|
2018-10-06 12:35:49 +02:00
|
|
|
"user": create_user("user"),
|
|
|
|
"member": create_member("member"),
|
|
|
|
"staff": create_staff("staff"),
|
2018-01-19 17:48:00 +01:00
|
|
|
}
|