Add a TestCase mixin for enabling caches in tests
By default, disable all caching in tests, to preserve test independence. In order to enable caching, inherit from CacheSetupMixin, and specify which cache configuration is needed. [EV-32]
This commit is contained in:
@@ -144,13 +144,24 @@ class TestGetCourseList(CourseListTestMixin, SharedModuleStoreTestCase):
|
||||
with self.assertRaises(PermissionDenied):
|
||||
self._make_api_call(anonuser, self.staff_user)
|
||||
|
||||
@SharedModuleStoreTestCase.modifies_courseware
|
||||
|
||||
class TestGetCourseListMultipleCourses(CourseListTestMixin, ModuleStoreTestCase):
|
||||
"""
|
||||
Test the behavior of the `list_courses` api function (with tests that
|
||||
modify the courseware).
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestGetCourseListMultipleCourses, self).setUp()
|
||||
self.course = self.create_course()
|
||||
self.staff_user = self.create_user("staff", is_staff=True)
|
||||
self.honor_user = self.create_user("honor", is_staff=False)
|
||||
|
||||
def test_multiple_courses(self):
|
||||
self.create_course(course='second')
|
||||
courses = self._make_api_call(self.honor_user, self.honor_user)
|
||||
self.assertEqual(len(courses), 2)
|
||||
|
||||
@SharedModuleStoreTestCase.modifies_courseware
|
||||
def test_filter_by_org(self):
|
||||
"""Verify that courses are filtered by the provided org key."""
|
||||
# Create a second course to be filtered out of queries.
|
||||
@@ -173,7 +184,6 @@ class TestGetCourseList(CourseListTestMixin, SharedModuleStoreTestCase):
|
||||
all(course.org == self.course.org for course in filtered_courses)
|
||||
)
|
||||
|
||||
@SharedModuleStoreTestCase.modifies_courseware
|
||||
def test_filter(self):
|
||||
# Create a second course to be filtered out of queries.
|
||||
alternate_course = self.create_course(course='mobile', mobile_available=True)
|
||||
|
||||
@@ -7,7 +7,7 @@ from django.core.urlresolvers import reverse
|
||||
from django.test import RequestFactory
|
||||
from nose.plugins.attrib import attr
|
||||
|
||||
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase, ModuleStoreTestCase
|
||||
from .mixins import CourseApiFactoryMixin, TEST_PASSWORD
|
||||
from ..views import CourseDetailView
|
||||
|
||||
@@ -91,7 +91,24 @@ class CourseListViewTestCase(CourseApiTestViewMixin, SharedModuleStoreTestCase):
|
||||
response_to_missing_username = self.verify_response(expected_status_code=200)
|
||||
self.assertIsNotNone(response_to_missing_username.data) # pylint: disable=no-member
|
||||
|
||||
@SharedModuleStoreTestCase.modifies_courseware
|
||||
def test_not_logged_in(self):
|
||||
self.client.logout()
|
||||
self.verify_response()
|
||||
|
||||
|
||||
class CourseListViewTestCaseMultipleCourses(CourseApiTestViewMixin, ModuleStoreTestCase):
|
||||
"""
|
||||
Test responses returned from CourseListView (with tests that modify the
|
||||
courseware).
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(CourseListViewTestCaseMultipleCourses, self).setUp()
|
||||
self.course = self.create_course()
|
||||
self.url = reverse('course-list')
|
||||
self.staff_user = self.create_user(username='staff', is_staff=True)
|
||||
self.honor_user = self.create_user(username='honor', is_staff=False)
|
||||
|
||||
def test_filter_by_org(self):
|
||||
"""Verify that CourseOverviews are filtered by the provided org key."""
|
||||
self.setup_user(self.staff_user)
|
||||
@@ -116,7 +133,6 @@ class CourseListViewTestCase(CourseApiTestViewMixin, SharedModuleStoreTestCase):
|
||||
all(course['org'] == self.course.org for course in filtered_response.data['results']) # pylint: disable=no-member
|
||||
)
|
||||
|
||||
@SharedModuleStoreTestCase.modifies_courseware
|
||||
def test_filter(self):
|
||||
self.setup_user(self.staff_user)
|
||||
|
||||
@@ -139,10 +155,6 @@ class CourseListViewTestCase(CourseApiTestViewMixin, SharedModuleStoreTestCase):
|
||||
"testing course_api.views.CourseListView with filter_={}".format(filter_),
|
||||
)
|
||||
|
||||
def test_not_logged_in(self):
|
||||
self.client.logout()
|
||||
self.verify_response()
|
||||
|
||||
|
||||
class CourseDetailViewTestCase(CourseApiTestViewMixin, SharedModuleStoreTestCase):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user