Improve test coverage of toggle state view

This commit is contained in:
Régis Behmo
2021-01-13 16:29:11 +01:00
parent 16ad959d7b
commit e9de9257cd

View File

@@ -12,14 +12,14 @@ from waffle.testutils import override_switch
from common.djangoapps.student.tests.factories import UserFactory
from .. import WaffleFlag, WaffleFlagNamespace
from ..views import ToggleStateView
from .. import models
from .. import views as toggle_state_views
TEST_WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace("test")
TEST_WAFFLE_FLAG = WaffleFlag(TEST_WAFFLE_FLAG_NAMESPACE, "flag", __name__)
# TODO: Missing coverage for:
# - course overrides
# - computed_status
class ToggleStateViewTests(TestCase):
@@ -144,11 +144,26 @@ class ToggleStateViewTests(TestCase):
][0]
self.assertNotIn("code_owner", result)
def test_course_overrides(self):
models.WaffleFlagCourseOverrideModel.objects.create(waffle_flag="my.flag", enabled=True)
course_overrides = {}
# pylint: disable=protected-access
toggle_state_views._add_waffle_flag_course_override_state(course_overrides)
toggle_state_views._add_waffle_flag_computed_status(course_overrides)
self.assertIn("my.flag", course_overrides)
self.assertIn("course_overrides", course_overrides["my.flag"])
self.assertEqual(1, len(course_overrides["my.flag"]["course_overrides"]))
self.assertEqual("None", course_overrides["my.flag"]["course_overrides"][0]["course_id"])
self.assertEqual("on", course_overrides["my.flag"]["course_overrides"][0]["force"])
self.assertEqual("both", course_overrides["my.flag"]["computed_status"])
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()
view = toggle_state_views.ToggleStateView.as_view()
response = view(request)
return response