poulpe/event/tests.py
2017-07-18 17:18:54 +02:00

156 lines
5.7 KiB
Python

from django.contrib.auth import get_user_model
from django.core.exceptions import ValidationError
from django.test import TestCase
from datetime import timedelta
from django.utils import timezone
from .models import Event, ActivityTemplate, Activity, Place, \
ActivityTag
User = get_user_model()
class ActivityInheritanceTest(TestCase):
@classmethod
def setUpTestData(cls):
cls.erkan = User.objects.create(
username='enarmanli',
email='erkan.narmanli@ens.fr',
first_name='Erkan',
last_name='Narmanli',
)
cls.event = Event.objects.create(
title='La Nuit 2042',
slug='nuit42',
created_by=cls.erkan,
creation_date=timezone.now(),
description="La nuit c'est lol",
beginning_date=timezone.now()
+ timedelta(days=30),
ending_date=timezone.now()
+ timedelta(days=31),
)
cls.loge = Place.objects.create(name="Loge 45")
cls.aqua = Place.objects.create(name="Aquarium")
cls.tag_foo = ActivityTag.objects.create(
name="foo",
is_public=True,
color="#0F0F0F",
)
cls.tag_bar = ActivityTag.objects.create(
name="bar",
is_public=True,
color="#0F0F0F",
)
def setUp(self):
self.template_act = ActivityTemplate.objects.create()
self.real_act = Activity.objects.create(
parent=self.template_act,
beginning=timezone.now()
+ timedelta(days=30),
end=timezone.now()
+ timedelta(days=30)
+ timedelta(hours=2),
)
def test_inherits_title(self):
self.template_act.title = "parent"
self.assertEqual(self.real_act.get_herited('title'), "parent")
self.real_act.title = "enfant"
self.assertEqual(self.real_act.get_herited('title'), "enfant")
def test_inherits_description(self):
self.template_act.description = "parent"
self.assertEqual(self.real_act.get_herited('description'), "parent")
self.real_act.description = "enfant"
self.assertEqual(self.real_act.get_herited('description'), "enfant")
def test_inherits_remarks(self):
self.template_act.remarks = "parent"
self.assertEqual(self.real_act.get_herited('remarks'), "parent")
self.real_act.remarks = "enfant"
self.assertEqual(self.real_act.get_herited('remarks'), "enfant")
def test_inherits_is_public(self):
self.template_act.is_public = True
self.assertEqual(self.real_act.get_herited('is_public'), True)
self.real_act.is_public = False
self.assertEqual(self.real_act.get_herited('is_public'), False)
def test_inherits_has_perm(self):
self.template_act.has_perm = True
self.assertEqual(self.real_act.get_herited('has_perm'), True)
self.real_act.has_perm = False
self.assertEqual(self.real_act.get_herited('has_perm'), False)
def test_inherits_min_perm(self):
self.template_act.min_perm = 42
self.assertEqual(self.real_act.get_herited('min_perm'), 42)
self.real_act.min_perm = 1
self.assertEqual(self.real_act.get_herited('min_perm'), 1)
def test_inherits_max_perm(self):
self.template_act.max_perm = 42
self.assertEqual(self.real_act.get_herited('max_perm'), 42)
self.real_act.max_perm = 1
self.assertEqual(self.real_act.get_herited('max_perm'), 1)
def test_inherits_place(self):
self.template_act.place.add(self.loge)
self.assertEqual(
self.real_act.get_herited('place').get(),
self.loge
)
self.real_act.place.add(self.aqua)
self.assertEqual(
self.real_act.get_herited('place').get(),
self.aqua
)
def test_inherits_tags(self):
self.template_act.tags.add(self.tag_foo)
self.assertEqual(
self.real_act.get_herited('tags').get(),
self.tag_foo
)
self.real_act.tags.add(self.tag_bar)
self.assertEqual(
self.real_act.get_herited('tags').get(),
self.tag_bar
)
class ActivityTagColorTest(TestCase):
def test_positive_color_long(self):
self.tag = ActivityTag.objects.create(
name="bar",
is_public=True,
color="#0F0F0F",
)
self.tag.full_clean()
def test_positive_color_small(self):
self.tag = ActivityTag.objects.create(
name="bar",
is_public=True,
color="#0F0",
)
self.tag.full_clean()
def test_negative_color_1(self):
self.tag = ActivityTag.objects.create(
name="bar",
is_public=True,
color="#ABCDEG",
)
with self.assertRaises(ValidationError):
self.tag.full_clean()
def test_negative_color_2(self):
self.tag = ActivityTag.objects.create(
name="bar",
is_public=True,
color="#ACDE-1",
)
with self.assertRaises(ValidationError):
self.tag.full_clean()