From d6f3cd8634b131da5a6e63c8af50ae0942643747 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 25 Aug 2015 01:57:47 -0400 Subject: [PATCH] Convert class dashboard tests to use SharedModuleStoreTestCase. --- .../tests/test_dashboard_data.py | 81 ++++++++++--------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/lms/djangoapps/class_dashboard/tests/test_dashboard_data.py b/lms/djangoapps/class_dashboard/tests/test_dashboard_data.py index a04de986d6..d968984e14 100644 --- a/lms/djangoapps/class_dashboard/tests/test_dashboard_data.py +++ b/lms/djangoapps/class_dashboard/tests/test_dashboard_data.py @@ -13,7 +13,7 @@ from capa.tests.response_xml_factory import StringResponseXMLFactory from courseware.tests.factories import StudentModuleFactory from student.tests.factories import UserFactory, CourseEnrollmentFactory, AdminFactory from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory -from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase +from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from class_dashboard.dashboard_data import ( get_problem_grade_distribution, get_sequential_open_distrib, @@ -28,10 +28,44 @@ USER_COUNT = 11 @attr('shard_1') -class TestGetProblemGradeDistribution(ModuleStoreTestCase): +class TestGetProblemGradeDistribution(SharedModuleStoreTestCase): """ Tests related to class_dashboard/dashboard_data.py """ + @classmethod + def setUpClass(cls): + super(TestGetProblemGradeDistribution, cls).setUpClass() + cls.course = CourseFactory.create( + display_name=u"test course omega \u03a9", + ) + with cls.store.bulk_operations(cls.course.id, emit_signals=False): + section = ItemFactory.create( + parent_location=cls.course.location, + category="chapter", + display_name=u"test factory section omega \u03a9", + ) + cls.sub_section = ItemFactory.create( + parent_location=section.location, + category="sequential", + display_name=u"test subsection omega \u03a9", + ) + cls.unit = ItemFactory.create( + parent_location=cls.sub_section.location, + category="vertical", + metadata={'graded': True, 'format': 'Homework'}, + display_name=u"test unit omega \u03a9", + ) + cls.items = [] + for i in xrange(USER_COUNT - 1): + item = ItemFactory.create( + parent_location=cls.unit.location, + category="problem", + data=StringResponseXMLFactory().build_xml(answer='foo'), + metadata={'rerandomize': 'always'}, + display_name=u"test problem omega \u03a9 " + str(i) + ) + cls.items.append(item) + cls.item = item def setUp(self): super(TestGetProblemGradeDistribution, self).setUp() @@ -40,58 +74,29 @@ class TestGetProblemGradeDistribution(ModuleStoreTestCase): self.instructor = AdminFactory.create() self.client.login(username=self.instructor.username, password='test') self.attempts = 3 - self.course = CourseFactory.create( - display_name=u"test course omega \u03a9", - ) - - section = ItemFactory.create( - parent_location=self.course.location, - category="chapter", - display_name=u"test factory section omega \u03a9", - ) - self.sub_section = ItemFactory.create( - parent_location=section.location, - category="sequential", - display_name=u"test subsection omega \u03a9", - ) - - unit = ItemFactory.create( - parent_location=self.sub_section.location, - category="vertical", - metadata={'graded': True, 'format': 'Homework'}, - display_name=u"test unit omega \u03a9", - ) - - self.users = [UserFactory.create(username="metric" + str(__)) for __ in xrange(USER_COUNT)] + self.users = [ + UserFactory.create(username="metric" + str(__)) + for __ in xrange(USER_COUNT) + ] for user in self.users: CourseEnrollmentFactory.create(user=user, course_id=self.course.id) - for i in xrange(USER_COUNT - 1): - category = "problem" - self.item = ItemFactory.create( - parent_location=unit.location, - category=category, - data=StringResponseXMLFactory().build_xml(answer='foo'), - metadata={'rerandomize': 'always'}, - display_name=u"test problem omega \u03a9 " + str(i) - ) - + for i, item in enumerate(self.items): for j, user in enumerate(self.users): StudentModuleFactory.create( grade=1 if i < j else 0, max_grade=1 if i < j else 0.5, student=user, course_id=self.course.id, - module_state_key=self.item.location, + module_state_key=item.location, state=json.dumps({'attempts': self.attempts}), ) - for j, user in enumerate(self.users): StudentModuleFactory.create( course_id=self.course.id, module_type='sequential', - module_state_key=self.item.location, + module_state_key=item.location, ) def test_get_problem_grade_distribution(self):