Create Grades djangoapp

https://openedx.atlassian.net/browse/TNL-5008
This commit is contained in:
Nimisha Asthagiri
2016-07-21 01:37:50 -04:00
parent f2a1984f1a
commit 1ada5c3487
40 changed files with 901 additions and 1164 deletions

View File

@@ -10,9 +10,10 @@ import json
import time
from json import JSONEncoder
from courseware import grades, models
from courseware import models
from courseware.courses import get_course_by_id
from django.contrib.auth.models import User
from lms.djangoapps.grades import course_grades
from opaque_keys import OpaqueKey
from opaque_keys.edx.keys import UsageKey
from xmodule.graders import Score
@@ -50,7 +51,7 @@ def offline_grade_calculation(course_key):
request.user = student
request.session = {}
gradeset = grades.grade(student, course, keep_raw_scores=True)
gradeset = course_grades.summary(student, course, keep_raw_scores=True)
# Convert Score namedtuples to dicts:
totaled_scores = gradeset['totaled_scores']
for section in totaled_scores:
@@ -89,7 +90,7 @@ def student_grades(student, request, course, keep_raw_scores=False, use_offline=
as use_offline. If use_offline is True then this will look for an offline computed gradeset in the DB.
'''
if not use_offline:
return grades.grade(student, course, keep_raw_scores=keep_raw_scores)
return course_grades.summary(student, course, keep_raw_scores=keep_raw_scores)
try:
ocg = models.OfflineComputedGrade.objects.get(user=student, course_id=course.id)

View File

@@ -57,7 +57,7 @@ class TestOfflineGradeCalc(ModuleStoreTestCase):
self.user = UserFactory.create()
CourseEnrollment.enroll(self.user, self.course.id)
patcher = patch('courseware.grades.grade', new=mock_grade)
patcher = patch('lms.djangoapps.grades.course_grades.summary', new=mock_grade)
patcher.start()
self.addCleanup(patcher.stop)
@@ -102,6 +102,6 @@ class TestOfflineGradeCalc(ModuleStoreTestCase):
def test_student_grades(self):
""" Test that the data returned by student_grades() and grades.grade() match """
offline_grade_calculation(self.course.id)
with patch('courseware.grades.grade', side_effect=AssertionError('Should not re-grade')):
with patch('lms.djangoapps.grades.course_grades.summary', side_effect=AssertionError('Should not re-grade')):
result = student_grades(self.user, None, self.course, use_offline=True)
self.assertEqual(result, mock_grade(self.user, self.course))