From e5c5d58cf9e5eee3359b8b7ee916dad4c66ae212 Mon Sep 17 00:00:00 2001 From: Thibaud Duquennoy <thibaud@duquennoy.fr> Date: Wed, 6 Mar 2019 02:30:55 +0100 Subject: [PATCH] update test permissions update: test permissions --- .../tests/tests_anonymous_permissions.py | 36 ++++++++++++------- djangoldp/tests/tests_user_permissions.py | 15 ++++---- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/djangoldp/tests/tests_anonymous_permissions.py b/djangoldp/tests/tests_anonymous_permissions.py index a8f4ee3f..0e7f59c2 100644 --- a/djangoldp/tests/tests_anonymous_permissions.py +++ b/djangoldp/tests/tests_anonymous_permissions.py @@ -1,6 +1,8 @@ from django.contrib.auth.models import AnonymousUser from django.test import TestCase, RequestFactory +from guardian.shortcuts import get_anonymous_user + from djangoldp.permissions import AnonymousReadOnly from djangoldp.tests.models import JobOffer from djangoldp.views import LDPViewSet @@ -9,8 +11,8 @@ from djangoldp.views import LDPViewSet class TestAnonymousUserPermissions(TestCase): def setUp(self): self.factory = RequestFactory() - # self.c = Client() - self.user = AnonymousUser + self.user = get_anonymous_user() + self.job = JobOffer.objects.create(title="job") def test_get_request_with_anonymousUser(self): request = self.factory.get("/job-offers/") @@ -18,26 +20,36 @@ class TestAnonymousUserPermissions(TestCase): my_view = LDPViewSet.as_view({'get': 'list'}, model=JobOffer, nested_fields=["skills"], - permission_classes=[AnonymousReadOnly]) + permission_classes=(AnonymousReadOnly,)) response = my_view(request) self.assertEqual(response.status_code, 200) - def test_request_options_create_with_anonymousUser(self): - request = self.factory.options("/job-offers/") + def test_post_request_with_anonymousUser(self): + request = self.factory.post("/job-offers/") request.user = self.user - my_view = LDPViewSet.as_view({'options': 'create'}, + my_view = LDPViewSet.as_view({'post': 'create'}, model=JobOffer, nested_fields=["skills"], - permission_classes=[AnonymousReadOnly]) + permission_classes=(AnonymousReadOnly,)) response = my_view(request) self.assertEqual(response.status_code, 403) - def test_request_options_update_with_anonymousUser(self): - request = self.factory.options("/job-offers/") + def test_put_request_with_anonymousUser(self): + request = self.factory.put("/job-offers/") request.user = self.user - my_view = LDPViewSet.as_view({'options': 'update'}, + my_view = LDPViewSet.as_view({'put': 'update'}, model=JobOffer, nested_fields=["skills"], - permission_classes=[AnonymousReadOnly]) - response = my_view(request) + permission_classes=(AnonymousReadOnly,)) + response = my_view(request, pk=self.job.pk) self.assertEqual(response.status_code, 403) + + def test_patch_request_with_anonymousUser(self): + request = self.factory.patch("/job-offers/") + request.user = self.user + my_view = LDPViewSet.as_view({'patch': 'partial_update'}, + model=JobOffer, + nested_fields=["skills"], + permission_classes=(AnonymousReadOnly,)) + response = my_view(request, pk=self.job.pk) + self.assertEqual(response.status_code, 403) \ No newline at end of file diff --git a/djangoldp/tests/tests_user_permissions.py b/djangoldp/tests/tests_user_permissions.py index 93d2da07..6742d5d1 100644 --- a/djangoldp/tests/tests_user_permissions.py +++ b/djangoldp/tests/tests_user_permissions.py @@ -9,7 +9,6 @@ from djangoldp.views import LDPViewSet class TestUserPermissions(TestCase): def setUp(self): self.factory = RequestFactory() - # self.c = Client() self.user = User.objects.create_user(username='john', email='jlennon@beatles.com', password='glass onion') self.job = JobOffer.objects.create(title="job") @@ -24,25 +23,25 @@ class TestUserPermissions(TestCase): response = my_view(request) self.assertEqual(response.status_code, 200) - def test_request_options_create_with_user(self): + def test_post_request_with_user(self): request = self.factory.options('/job-offers/') request.user = self.user - my_view = LDPViewSet.as_view({'options': 'create'}, model=JobOffer, nested_fields=["skills"], + my_view = LDPViewSet.as_view({'post': 'create'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly]) response = my_view(request) self.assertEqual(response.status_code, 201) - def test_request_options_update_with_user(self): - request = self.factory.options('/job-offers/' + str(self.job.pk) + "/") + def test_put_request_with_user(self): + request = self.factory.put('/job-offers/' + str(self.job.pk) + "/") request.user = self.user - my_view = LDPViewSet.as_view({'options': 'update'}, model=JobOffer, nested_fields=["skills"], + my_view = LDPViewSet.as_view({'put': 'update'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly]) response = my_view(request, pk=self.job.pk) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, 403) def test_request_patch_with_user(self): request = self.factory.patch('/job-offers/' + str(self.job.pk) + "/") request.user = self.user my_view = LDPViewSet.as_view({'patch': 'partial_update'}, model=JobOffer, nested_fields=["skills"]) response = my_view(request, pk=self.job.pk) - self.assertEqual(response.status_code, 200) \ No newline at end of file + self.assertEqual(response.status_code, 403) \ No newline at end of file -- GitLab