diff --git a/djangoldp/tests/runner.py b/djangoldp/tests/runner.py index 4e3bcd0417a8ea9e8588f2ec0ae9539615278bb8..af9839c806639a0bacef0303770c3347797817f0 100644 --- a/djangoldp/tests/runner.py +++ b/djangoldp/tests/runner.py @@ -27,6 +27,7 @@ test_runner = DiscoverRunner(verbosity=1) failures = test_runner.run_tests([ 'djangoldp.tests.tests_ldp_model', 'djangoldp.tests.tests_save', + 'djangoldp.tests.tests', 'djangoldp.tests.tests_update']) if failures: sys.exit(failures) diff --git a/djangoldp/tests/tests.py b/djangoldp/tests/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..53644644214c6047dcb98a6aa2ee70e596d12eeb --- /dev/null +++ b/djangoldp/tests/tests.py @@ -0,0 +1,75 @@ +from django.test import TestCase, Client, RequestFactory +from djangoldp.views import LDPViewSet +from djangoldp.permissions import AnonymousReadOnly + +from django.contrib.auth.models import AnonymousUser, User +from djangoldp_joboffer.models import JobOffer + + +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') + + def tearDown(self): + self.user.delete() + + def test_get_with_user(self): + request = self.factory.get('/job-offers/') + request.user = self.user + my_view = LDPViewSet.as_view({'get': 'list'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly]) + response = my_view(request) + self.assertEqual(response.status_code, 200) + + def test_request_options_create_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"], 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/') + request.user = self.user + my_view = LDPViewSet.as_view({'options': 'update'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly]) + response = my_view(request) + self.assertEqual(response.status_code, 201) + +class TestAnonymousUserPermissions (TestCase): + def setUp(self): + self.factory = RequestFactory() +# self.c = Client() + self.user = AnonymousUser + + def test_get_request_with_anonymousUser(self): + request = self.factory.get("/job-offers/") + request.user = self.user + my_view = LDPViewSet.as_view({'get': 'list'}, + model=JobOffer, + nested_fields=["skills"], + 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/") + request.user = self.user + my_view = LDPViewSet.as_view({'options': 'create'}, + model=JobOffer, + nested_fields=["skills"], + 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/") + request.user = self.user + my_view = LDPViewSet.as_view({'options': 'update'}, + model=JobOffer, + nested_fields=["skills"], + permission_classes=[AnonymousReadOnly]) + response = my_view(request) + self.assertEqual(response.status_code, 403) + +