debut des tests

ajout des méthodes __str__
This commit is contained in:
Qwann 2016-10-03 00:31:21 +02:00
parent 53fda44f8b
commit d4b96f0567
2 changed files with 54 additions and 16 deletions

View file

@ -30,7 +30,7 @@ class Event(models.Model):
) )
created_by = models.ForeignKey( created_by = models.ForeignKey(
User, User,
related_name=_("created_events"), related_name="created_events",
editable=False, editable=False,
) )
creation_date = models.DateTimeField( creation_date = models.DateTimeField(
@ -45,6 +45,9 @@ class Event(models.Model):
verbose_name = _("Évènement") verbose_name = _("Évènement")
verbose_name_plural = _("Évènements") verbose_name_plural = _("Évènements")
def __str__(self):
return self.title
class Place(models.Model): class Place(models.Model):
name = models.CharField( name = models.CharField(
@ -57,6 +60,9 @@ class Place(models.Model):
verbose_name = _("Lieu") verbose_name = _("Lieu")
verbose_name_plural = _("Lieux") verbose_name_plural = _("Lieux")
def __str__(self):
return self.name
class ActivityTag(models.Model): class ActivityTag(models.Model):
name = models.CharField( name = models.CharField(
@ -76,6 +82,9 @@ class ActivityTag(models.Model):
verbose_name = _("Tag") verbose_name = _("Tag")
verbose_name_plural = _("Tags") verbose_name_plural = _("Tags")
def __str__(self):
return self.name
class ActivityTemplate(models.Model): class ActivityTemplate(models.Model):
title = models.CharField( title = models.CharField(
@ -114,13 +123,13 @@ class ActivityTemplate(models.Model):
) )
tags = models.ManyToManyField( tags = models.ManyToManyField(
ActivityTag, ActivityTag,
related_name=_("activities"), related_name="activities",
blank=True, blank=True,
null=True, null=True,
) )
place = models.ManyToManyField( place = models.ManyToManyField(
Place, Place,
related_name=_("activities"), related_name="activities",
blank=True, blank=True,
null=True, null=True,
) )
@ -129,15 +138,18 @@ class ActivityTemplate(models.Model):
verbose_name = _("Template activité") verbose_name = _("Template activité")
verbose_name_plural = _("Templates activité") verbose_name_plural = _("Templates activité")
def __str__(self):
return self.title
class Activity(ActivityTemplate): class Activity(ActivityTemplate):
parent = models.ForeignKey( parent = models.ForeignKey(
ActivityTemplate, ActivityTemplate,
related_name=_("children"), related_name="children",
) )
staff = models.ManyToManyField( staff = models.ManyToManyField(
User, User,
related_name=_("in_perm_activities"), related_name="in_perm_activities",
blank=True, blank=True,
) )
# TODO : Utiliser db_constraint ou through # TODO : Utiliser db_constraint ou through
@ -147,12 +159,15 @@ class Activity(ActivityTemplate):
verbose_name = _("Activité") verbose_name = _("Activité")
verbose_name_plural = _("Activités") verbose_name_plural = _("Activités")
# Si le champ de l'activité n'est pas spécifié
# alors on va chercher celui de self.parent
def __getattr__(self, attrname): def __getattr__(self, attrname):
attr = super(Activity, self).__getattr__(attrname)
if (attrname == 'parent' if (attrname == 'parent'
or attrname == 'staff' or attrname == 'staff'
or attrname == 'equipement'): or attrname == 'equipement'):
return super(Activity, self).__getattr__(attrname) return attr
elif attrname is None: elif attr is None:
return self.parent.attrname return self.parent.__getattr__(attrname)
else: else:
return attrname return attr

View file

@ -1,8 +1,8 @@
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.test import TestCase from django.test import TestCase
from datetime import datetime from datetime import timedelta
from django.utils import timezone from django.utils import timezone
from .models import Event from .models import Event, ActivityTemplate, Activity, Place
class ActivityInheritanceTest(TestCase): class ActivityInheritanceTest(TestCase):
@ -18,10 +18,33 @@ class ActivityInheritanceTest(TestCase):
title='La Nuit 2042', title='La Nuit 2042',
slug='nuit42', slug='nuit42',
created_by=cls.erkan, created_by=cls.erkan,
creation_date=datetime.now(), creation_date=timezone.now(),
descrition="La nuit c'est lol", description="La nuit c'est lol",
beginning_date=timezone.now() beginning_date=timezone.now()
+ datetime.timedelta(days=30), + timedelta(days=30),
ending_date=timezone.now() ending_date=timezone.now()
+ datetime.timedelta(days=31), + timedelta(days=31),
) )
cls.loge = Place.objects.create(name="Loge 45")
cls.permtemp = ActivityTemplate.objects.create(
title="Permanence loge",
# is_public non spécifié
has_perm=False,
description="Les perms c'est lol",
# remark non spécifié
)
cls.permtemp.place.add(cls.loge)
cls.perm = Activity.objects.create(
parent=cls.permtemp,
# title non spécifié
is_public=True,
# has_perm non spécifié
# description non spécifiée
remarks="lol",
)
def test_event_name(self):
self.assertEqual(self.event.title, 'La Nuit 2042')
self.assertEqual(self.loge.name, 'Loge 45')
self.assertEqual(self.permtemp.title, 'Permanence loge')
self.assertEqual(self.permtemp.place.name, 'Loge 45')