Tests and group uniqueness
This commit is contained in:
parent
64a979a4ac
commit
0b1641a002
3 changed files with 59 additions and 14 deletions
|
@ -28,10 +28,8 @@ class SubscriptionTest(TestCase):
|
||||||
created_by=cls.root,
|
created_by=cls.root,
|
||||||
created_at=timezone.now(),
|
created_at=timezone.now(),
|
||||||
description="Ceci est un test",
|
description="Ceci est un test",
|
||||||
beginning_date=timezone.now()
|
beginning_date=timezone.now() + timedelta(days=30),
|
||||||
+ timedelta(days=30),
|
ending_date=timezone.now() + timedelta(days=31),
|
||||||
ending_date=timezone.now()
|
|
||||||
+ timedelta(days=31),
|
|
||||||
)
|
)
|
||||||
cls.groupsub = GroupSubscription.objects.create(
|
cls.groupsub = GroupSubscription.objects.create(
|
||||||
content_object=cls.event,
|
content_object=cls.event,
|
||||||
|
@ -55,4 +53,4 @@ class SubscriptionTest(TestCase):
|
||||||
|
|
||||||
def test_all_subs(self):
|
def test_all_subs(self):
|
||||||
self.assertSetEqual(set(self.event.get_all_subscribers()),
|
self.assertSetEqual(set(self.event.get_all_subscribers()),
|
||||||
{self.user_true, self.user_group_true})
|
{self.user_true, self.user_group_true})
|
||||||
|
|
|
@ -12,7 +12,7 @@ def create_groups_for_event(sender, **kwargs):
|
||||||
event, created = kwargs["instance"], kwargs["created"]
|
event, created = kwargs["instance"], kwargs["created"]
|
||||||
if created:
|
if created:
|
||||||
orgas = EventGroup.objects.create(
|
orgas = EventGroup.objects.create(
|
||||||
name="orga",
|
name="{}_orgas".format(event.slug),
|
||||||
event=event
|
event=event
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ def create_groups_for_event(sender, **kwargs):
|
||||||
assign_perm(perm.codename, orgas, event)
|
assign_perm(perm.codename, orgas, event)
|
||||||
|
|
||||||
EventGroup.objects.create(
|
EventGroup.objects.create(
|
||||||
name="participants",
|
name="{}_participants".format(event.slug),
|
||||||
event=event,
|
event=event,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from .models import Event, ActivityTemplate, Activity, Place, \
|
from .models import Event, EventGroup, ActivityTemplate, Activity, Place, \
|
||||||
ActivityTag
|
ActivityTag
|
||||||
|
from guardian.shortcuts import assign_perm
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
|
@ -24,10 +27,8 @@ class ActivityInheritanceTest(TestCase):
|
||||||
created_by=cls.erkan,
|
created_by=cls.erkan,
|
||||||
created_at=timezone.now(),
|
created_at=timezone.now(),
|
||||||
description="La nuit c'est lol",
|
description="La nuit c'est lol",
|
||||||
beginning_date=timezone.now()
|
beginning_date=timezone.now() + timedelta(days=30),
|
||||||
+ timedelta(days=30),
|
ending_date=timezone.now() + timedelta(days=31),
|
||||||
ending_date=timezone.now()
|
|
||||||
+ timedelta(days=31),
|
|
||||||
)
|
)
|
||||||
cls.loge = Place.objects.create(name="Loge 45")
|
cls.loge = Place.objects.create(name="Loge 45")
|
||||||
cls.aqua = Place.objects.create(name="Aquarium")
|
cls.aqua = Place.objects.create(name="Aquarium")
|
||||||
|
@ -47,8 +48,7 @@ class ActivityInheritanceTest(TestCase):
|
||||||
self.real_act = Activity.objects.create(
|
self.real_act = Activity.objects.create(
|
||||||
parent=self.template_act,
|
parent=self.template_act,
|
||||||
event=self.event,
|
event=self.event,
|
||||||
beginning=timezone.now()
|
beginning=timezone.now() + timedelta(days=30),
|
||||||
+ timedelta(days=30),
|
|
||||||
end=timezone.now()
|
end=timezone.now()
|
||||||
+ timedelta(days=30)
|
+ timedelta(days=30)
|
||||||
+ timedelta(hours=2),
|
+ timedelta(hours=2),
|
||||||
|
@ -155,3 +155,50 @@ class ActivityTagColorTest(TestCase):
|
||||||
)
|
)
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
self.tag.full_clean()
|
self.tag.full_clean()
|
||||||
|
|
||||||
|
|
||||||
|
class EventPermissionTest(TestCase):
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
cls.user_perm = User.objects.create(username="userperm")
|
||||||
|
cls.user_noperm = User.objects.create(username="usernoperm")
|
||||||
|
cls.user_groupperm = User.objects.create(username="usergroupperm")
|
||||||
|
cls.user_groupnoperm = User.objects.create(username="usergroupnoperm")
|
||||||
|
cls.root = User.objects.create_superuser(
|
||||||
|
username="root",
|
||||||
|
email="toto@toto.io",
|
||||||
|
password="toto"
|
||||||
|
)
|
||||||
|
cls.event = Event.objects.create(
|
||||||
|
title="Hackathon",
|
||||||
|
slug="django",
|
||||||
|
created_by=cls.root,
|
||||||
|
description="Le code c'est cool",
|
||||||
|
beginning_date=timezone.now(),
|
||||||
|
ending_date=timezone.now() + timedelta(days=1),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_event_groups(self):
|
||||||
|
groups = EventGroup.objects.filter(
|
||||||
|
event=self.event
|
||||||
|
)
|
||||||
|
self.assertEqual(groups.count(), 2)
|
||||||
|
|
||||||
|
def test_individual_perms(self):
|
||||||
|
assign_perm("event_add_place", self.user_perm, self.event)
|
||||||
|
self.assertTrue(self.user_perm.has_perm("event_add_place", self.event))
|
||||||
|
self.assertFalse(self.user_noperm.has_perm("event_add_place",
|
||||||
|
self.event))
|
||||||
|
|
||||||
|
def test_group_perms(self):
|
||||||
|
orgas = EventGroup.objects.get(
|
||||||
|
name="{}_orgas".format(self.event.slug),
|
||||||
|
)
|
||||||
|
self.user_groupperm.groups.add(orgas)
|
||||||
|
for perm in Permission.objects.filter(
|
||||||
|
content_type=ContentType.objects.get_for_model(Event),
|
||||||
|
codename__contains="event_"):
|
||||||
|
self.assertTrue(self.user_groupperm.has_perm(perm.codename,
|
||||||
|
self.event))
|
||||||
|
self.assertFalse(self.user_groupnoperm.has_perm(perm.codename,
|
||||||
|
self.event))
|
||||||
|
|
Loading…
Add table
Reference in a new issue