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)