From 72ce55c8a2ba4ea749cf4b6d569899eefc754554 Mon Sep 17 00:00:00 2001 From: John Eskew Date: Tue, 1 Mar 2016 10:18:09 -0500 Subject: [PATCH] Convert to SharedModuleStoreTestCase --- .../courseware/tests/test_navigation.py | 94 ++++++++++--------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/lms/djangoapps/courseware/tests/test_navigation.py b/lms/djangoapps/courseware/tests/test_navigation.py index 0fdecd1cac..407d0d6413 100644 --- a/lms/djangoapps/courseware/tests/test_navigation.py +++ b/lms/djangoapps/courseware/tests/test_navigation.py @@ -11,56 +11,68 @@ from django.test.utils import override_settings from courseware.tests.helpers import LoginEnrollmentTestCase from courseware.tests.factories import GlobalStaffFactory -from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase +from student.tests.factories import UserFactory +from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory from xmodule.modulestore.django import modulestore @attr('shard_1') -class TestNavigation(ModuleStoreTestCase, LoginEnrollmentTestCase): +class TestNavigation(SharedModuleStoreTestCase, LoginEnrollmentTestCase): """ Check that navigation state is saved properly. """ STUDENT_INFO = [('view@test.com', 'foo'), ('view2@test.com', 'foo')] - def setUp(self): - super(TestNavigation, self).setUp() + @classmethod + def setUpClass(cls): + # pylint: disable=super-method-not-called + with super(TestNavigation, cls).setUpClassAndTestData(): + cls.test_course = CourseFactory.create() + cls.test_course_proctored = CourseFactory.create() + cls.course = CourseFactory.create() - self.test_course = CourseFactory.create() - self.course = CourseFactory.create() - self.chapter0 = ItemFactory.create(parent=self.course, - display_name='Overview') - self.chapter9 = ItemFactory.create(parent=self.course, - display_name='factory_chapter') - self.section0 = ItemFactory.create(parent=self.chapter0, - display_name='Welcome') - self.section9 = ItemFactory.create(parent=self.chapter9, - display_name='factory_section') - self.unit0 = ItemFactory.create(parent=self.section0, - display_name='New Unit') + @classmethod + def setUpTestData(cls): + cls.chapter0 = ItemFactory.create(parent=cls.course, + display_name='Overview') + cls.chapter9 = ItemFactory.create(parent=cls.course, + display_name='factory_chapter') + cls.section0 = ItemFactory.create(parent=cls.chapter0, + display_name='Welcome') + cls.section9 = ItemFactory.create(parent=cls.chapter9, + display_name='factory_section') + cls.unit0 = ItemFactory.create(parent=cls.section0, + display_name='New Unit') - self.chapterchrome = ItemFactory.create(parent=self.course, - display_name='Chrome') - self.chromelesssection = ItemFactory.create(parent=self.chapterchrome, - display_name='chromeless', - chrome='none') - self.accordionsection = ItemFactory.create(parent=self.chapterchrome, - display_name='accordion', - chrome='accordion') - self.tabssection = ItemFactory.create(parent=self.chapterchrome, - display_name='tabs', - chrome='tabs') - self.defaultchromesection = ItemFactory.create( - parent=self.chapterchrome, + cls.chapterchrome = ItemFactory.create(parent=cls.course, + display_name='Chrome') + cls.chromelesssection = ItemFactory.create(parent=cls.chapterchrome, + display_name='chromeless', + chrome='none') + cls.accordionsection = ItemFactory.create(parent=cls.chapterchrome, + display_name='accordion', + chrome='accordion') + cls.tabssection = ItemFactory.create(parent=cls.chapterchrome, + display_name='tabs', + chrome='tabs') + cls.defaultchromesection = ItemFactory.create( + parent=cls.chapterchrome, display_name='defaultchrome', ) - self.fullchromesection = ItemFactory.create(parent=self.chapterchrome, - display_name='fullchrome', - chrome='accordion,tabs') - self.tabtest = ItemFactory.create(parent=self.chapterchrome, - display_name='progress_tab', - default_tab='progress') + cls.fullchromesection = ItemFactory.create(parent=cls.chapterchrome, + display_name='fullchrome', + chrome='accordion,tabs') + cls.tabtest = ItemFactory.create(parent=cls.chapterchrome, + display_name='progress_tab', + default_tab='progress') + + cls.staff_user = GlobalStaffFactory() + cls.user = UserFactory() + + def setUp(self): + super(TestNavigation, self).setUp() # Create student accounts and activate them. for i in range(len(self.STUDENT_INFO)): @@ -69,8 +81,6 @@ class TestNavigation(ModuleStoreTestCase, LoginEnrollmentTestCase): self.create_account(username, email, password) self.activate_user(email) - self.staff_user = GlobalStaffFactory() - def assertTabActive(self, tabname, response): ''' Check if the progress tab is active in the tab set ''' for line in response.content.split('\n'): @@ -278,9 +288,9 @@ class TestNavigation(ModuleStoreTestCase, LoginEnrollmentTestCase): email, password = self.STUDENT_INFO[0] self.login(email, password) - self.enroll(self.test_course, True) + self.enroll(self.test_course_proctored, True) - test_course_id = self.test_course.id.to_deprecated_string() + test_course_id = self.test_course_proctored.id.to_deprecated_string() with patch.dict(settings.FEATURES, {'ENABLE_SPECIAL_EXAMS': False}): url = reverse( @@ -302,10 +312,10 @@ class TestNavigation(ModuleStoreTestCase, LoginEnrollmentTestCase): # now set up a course which is proctored enabled - self.test_course.enable_proctored_exams = True - self.test_course.save() + self.test_course_proctored.enable_proctored_exams = True + self.test_course_proctored.save() - modulestore().update_item(self.test_course, self.user.id) + modulestore().update_item(self.test_course_proctored, self.user.id) resp = self.client.get(url)