forked from DGNum/gestioCOF
Basic tests for BDS registration views
This commit is contained in:
parent
c1e48579f1
commit
5c1e2e9cda
3 changed files with 59 additions and 1 deletions
|
@ -2,4 +2,4 @@ from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
|
|
||||||
|
|
||||||
class StaffRequiredMixin(PermissionRequiredMixin):
|
class StaffRequiredMixin(PermissionRequiredMixin):
|
||||||
permission_required = "bds:is_team"
|
permission_required = "bds.is_team"
|
||||||
|
|
0
bds/tests/__init__.py
Normal file
0
bds/tests/__init__.py
Normal file
58
bds/tests/test_views.py
Normal file
58
bds/tests/test_views.py
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
|
from django.test import Client, TestCase
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
|
def give_bds_buro_permissions(user: User) -> None:
|
||||||
|
perm = Permission.objects.get(content_type__app_label="bds", codename="is_team")
|
||||||
|
user.user_permissions.add(perm)
|
||||||
|
|
||||||
|
|
||||||
|
class TestRegistrationView(TestCase):
|
||||||
|
@mock.patch("gestioncof.signals.messages")
|
||||||
|
def test_get_autocomplete(self, mock_messages):
|
||||||
|
user = User.objects.create_user(username="toto")
|
||||||
|
url = reverse("bds:autocomplete") + "?q=foo"
|
||||||
|
client = Client()
|
||||||
|
|
||||||
|
# Anonymous GET
|
||||||
|
resp = client.get(url)
|
||||||
|
redirect_url = "/login?next={}".format(url)
|
||||||
|
self.assertRedirects(resp, redirect_url)
|
||||||
|
|
||||||
|
# Logged-in but unprivileged GET
|
||||||
|
client.force_login(user)
|
||||||
|
resp = client.get(url)
|
||||||
|
self.assertEquals(resp.status_code, 403)
|
||||||
|
|
||||||
|
# Burô user GET
|
||||||
|
give_bds_buro_permissions(user)
|
||||||
|
resp = client.get(url)
|
||||||
|
self.assertEquals(resp.status_code, 200)
|
||||||
|
|
||||||
|
@mock.patch("gestioncof.signals.messages")
|
||||||
|
def test_get(self, mock_messages):
|
||||||
|
user = User.objects.create_user(username="toto")
|
||||||
|
url = reverse("bds:user.update", args=(user.id,))
|
||||||
|
print(url)
|
||||||
|
client = Client()
|
||||||
|
|
||||||
|
# Anonymous GET
|
||||||
|
resp = client.get(url)
|
||||||
|
redirect_url = "/login?next={}".format(url)
|
||||||
|
self.assertRedirects(resp, redirect_url)
|
||||||
|
|
||||||
|
# Logged-in but unprivileged GET
|
||||||
|
client.force_login(user)
|
||||||
|
resp = client.get(url)
|
||||||
|
self.assertEquals(resp.status_code, 403)
|
||||||
|
|
||||||
|
# Burô user GET
|
||||||
|
give_bds_buro_permissions(user)
|
||||||
|
resp = client.get(url)
|
||||||
|
self.assertEquals(resp.status_code, 200)
|
Loading…
Reference in a new issue