Merge pull request #17381 from edx/noraiz/EDUCATOR-2228

Clean grade sevice
This commit is contained in:
Noraiz Anwar
2018-02-02 13:02:20 +05:00
committed by GitHub
2 changed files with 24 additions and 1 deletions

View File

@@ -105,7 +105,11 @@ class GradesService(object):
course_key = _get_key(course_key_or_id, CourseKey)
usage_key = _get_key(usage_key_or_id, UsageKey)
override = self.get_subsection_grade_override(user_id, course_key, usage_key)
try:
override = self.get_subsection_grade_override(user_id, course_key, usage_key)
except PersistentSubsectionGrade.DoesNotExist:
return
# Older rejected exam attempts that transition to verified might not have an override created
if override is not None:
override.delete()

View File

@@ -217,6 +217,25 @@ class GradesServiceTests(ModuleStoreTestCase):
)
)
@freeze_time('2018-01-01')
def test_undo_override_subsection_grade_without_grade(self):
"""
Test exception handling of `undo_override_subsection_grade` when PersistentSubsectionGrade
does not exist.
"""
self.grade.delete()
try:
self.service.undo_override_subsection_grade(
user_id=self.user.id,
course_key_or_id=self.course.id,
usage_key_or_id=self.subsection.location,
)
except PersistentSubsectionGrade.DoesNotExist:
assert False, 'Exception raised unexpectedly'
self.assertFalse(self.mock_signal.called)
def test_should_override_grade_on_rejected_exam(self):
self.assertTrue(self.service.should_override_grade_on_rejected_exam('course-v1:edX+DemoX+Demo_Course'))
self.mock_waffle_flags.return_value = {