Commit d6f3cd86 by David Ormsbee

Convert class dashboard tests to use SharedModuleStoreTestCase.

parent 28bca8e6
...@@ -13,7 +13,7 @@ from capa.tests.response_xml_factory import StringResponseXMLFactory ...@@ -13,7 +13,7 @@ from capa.tests.response_xml_factory import StringResponseXMLFactory
from courseware.tests.factories import StudentModuleFactory from courseware.tests.factories import StudentModuleFactory
from student.tests.factories import UserFactory, CourseEnrollmentFactory, AdminFactory from student.tests.factories import UserFactory, CourseEnrollmentFactory, AdminFactory
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory 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 ( from class_dashboard.dashboard_data import (
get_problem_grade_distribution, get_sequential_open_distrib, get_problem_grade_distribution, get_sequential_open_distrib,
...@@ -28,10 +28,44 @@ USER_COUNT = 11 ...@@ -28,10 +28,44 @@ USER_COUNT = 11
@attr('shard_1') @attr('shard_1')
class TestGetProblemGradeDistribution(ModuleStoreTestCase): class TestGetProblemGradeDistribution(SharedModuleStoreTestCase):
""" """
Tests related to class_dashboard/dashboard_data.py 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): def setUp(self):
super(TestGetProblemGradeDistribution, self).setUp() super(TestGetProblemGradeDistribution, self).setUp()
...@@ -40,58 +74,29 @@ class TestGetProblemGradeDistribution(ModuleStoreTestCase): ...@@ -40,58 +74,29 @@ class TestGetProblemGradeDistribution(ModuleStoreTestCase):
self.instructor = AdminFactory.create() self.instructor = AdminFactory.create()
self.client.login(username=self.instructor.username, password='test') self.client.login(username=self.instructor.username, password='test')
self.attempts = 3 self.attempts = 3
self.course = CourseFactory.create( self.users = [
display_name=u"test course omega \u03a9", UserFactory.create(username="metric" + str(__))
) for __ in xrange(USER_COUNT)
]
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)]
for user in self.users: for user in self.users:
CourseEnrollmentFactory.create(user=user, course_id=self.course.id) CourseEnrollmentFactory.create(user=user, course_id=self.course.id)
for i in xrange(USER_COUNT - 1): for i, item in enumerate(self.items):
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 j, user in enumerate(self.users): for j, user in enumerate(self.users):
StudentModuleFactory.create( StudentModuleFactory.create(
grade=1 if i < j else 0, grade=1 if i < j else 0,
max_grade=1 if i < j else 0.5, max_grade=1 if i < j else 0.5,
student=user, student=user,
course_id=self.course.id, course_id=self.course.id,
module_state_key=self.item.location, module_state_key=item.location,
state=json.dumps({'attempts': self.attempts}), state=json.dumps({'attempts': self.attempts}),
) )
for j, user in enumerate(self.users): for j, user in enumerate(self.users):
StudentModuleFactory.create( StudentModuleFactory.create(
course_id=self.course.id, course_id=self.course.id,
module_type='sequential', module_type='sequential',
module_state_key=self.item.location, module_state_key=item.location,
) )
def test_get_problem_grade_distribution(self): def test_get_problem_grade_distribution(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment