From eb0f62ee163b3e2629c6521f16900e16826e823b Mon Sep 17 00:00:00 2001 From: Robert Raposa Date: Wed, 12 Aug 2020 17:18:16 -0400 Subject: [PATCH] add tests for toggle state view ARCHBOM-1427 --- .../waffle_utils/tests/test_views.py | 30 +++++++++++++++++++ openedx/core/djangoapps/waffle_utils/views.py | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 openedx/core/djangoapps/waffle_utils/tests/test_views.py diff --git a/openedx/core/djangoapps/waffle_utils/tests/test_views.py b/openedx/core/djangoapps/waffle_utils/tests/test_views.py new file mode 100644 index 0000000000..0d5c7c0beb --- /dev/null +++ b/openedx/core/djangoapps/waffle_utils/tests/test_views.py @@ -0,0 +1,30 @@ +""" +Tests for waffle utils views. +""" +from django.test import TestCase +from rest_framework.test import APIRequestFactory + +from student.tests.factories import UserFactory + +from ..views import ToggleStateView + + +class ToggleStateViewTests(TestCase): + + def test_success_for_staff(self): + response = self._get_toggle_state_response(is_staff=True) + self.assertEqual(response.status_code, 200) + self.assertTrue(response.data) + + def test_failure_for_non_staff(self): + response = self._get_toggle_state_response(is_staff=False) + self.assertEqual(response.status_code, 403) + + def _get_toggle_state_response(self, is_staff=True): + request = APIRequestFactory().get('/api/toggles/state/') + user = UserFactory() + user.is_staff = is_staff + request.user = user + view = ToggleStateView.as_view() + response = view(request) + return response diff --git a/openedx/core/djangoapps/waffle_utils/views.py b/openedx/core/djangoapps/waffle_utils/views.py index 19e20a41cc..3a35accca2 100644 --- a/openedx/core/djangoapps/waffle_utils/views.py +++ b/openedx/core/djangoapps/waffle_utils/views.py @@ -1,7 +1,6 @@ """ Views that we will use to view toggle state in edx-platform. """ from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication from edx_rest_framework_extensions.permissions import IsStaff - from rest_framework.authentication import SessionAuthentication from rest_framework import permissions, views from rest_framework.response import Response @@ -15,4 +14,5 @@ class ToggleStateView(views.APIView): permission_classes = (permissions.IsAuthenticated, IsStaff,) def get(self, request): - return Response("Hello") + response = {'hello': 'world'} + return Response(response)