Updated subsections grade percentage to start rounding
Changed subsection gating on course outline to consider rounded off grade instead of absolute grade to decide whether to show a subsection which has a prerequisite or not. EDUCATOR-1676
This commit is contained in:
@@ -383,7 +383,7 @@ class AssignmentFormatGrader(CourseGrader):
|
||||
possible = scores[i].graded_total.possible
|
||||
section_name = scores[i].display_name
|
||||
|
||||
percentage = earned / possible
|
||||
percentage = scores[i].percent_graded
|
||||
summary_format = u"{section_type} {index} - {name} - {percent:.0%} ({earned:.3n}/{possible:.3n})"
|
||||
summary = summary_format.format(
|
||||
index=i + self.starting_index,
|
||||
|
||||
@@ -7,6 +7,7 @@ from datetime import datetime, timedelta
|
||||
|
||||
import ddt
|
||||
from pytz import UTC
|
||||
from lms.djangoapps.grades.scores import compute_percent
|
||||
from xmodule import graders
|
||||
from xmodule.graders import (
|
||||
AggregatedScore, ProblemScore, ShowCorrectness, aggregate_scores
|
||||
@@ -97,6 +98,10 @@ class GraderTest(unittest.TestCase):
|
||||
self.graded_total = graded_total
|
||||
self.display_name = display_name
|
||||
|
||||
@property
|
||||
def percent_graded(self):
|
||||
return compute_percent(self.graded_total.earned, self.graded_total.possible)
|
||||
|
||||
common_fields = dict(graded=True, first_attempted=datetime.now())
|
||||
test_gradesheet = {
|
||||
'Homework': {
|
||||
@@ -153,11 +158,11 @@ class GraderTest(unittest.TestCase):
|
||||
self.assertEqual(len(graded['section_breakdown']), 12 + 1)
|
||||
|
||||
graded = overflow_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.8880952380952382) # 100% + 10% / 5 assignments
|
||||
self.assertAlmostEqual(graded['percent'], 0.8879999999999999) # 100% + 10% / 5 assignments
|
||||
self.assertEqual(len(graded['section_breakdown']), 7 + 1)
|
||||
|
||||
graded = lab_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.9226190476190477)
|
||||
self.assertAlmostEqual(graded['percent'], 0.92249999999999999)
|
||||
self.assertEqual(len(graded['section_breakdown']), 7 + 1)
|
||||
|
||||
def test_assignment_format_grader_on_single_section_entry(self):
|
||||
@@ -173,7 +178,7 @@ class GraderTest(unittest.TestCase):
|
||||
self.assertEqual(graded['section_breakdown'][0]['label'], 'Midterm')
|
||||
|
||||
graded = midterm_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.505)
|
||||
self.assertAlmostEqual(graded['percent'], 0.50)
|
||||
self.assertEqual(len(graded['section_breakdown']), 0 + 1)
|
||||
|
||||
def test_weighted_subsections_grader(self):
|
||||
@@ -211,17 +216,17 @@ class GraderTest(unittest.TestCase):
|
||||
empty_grader = graders.WeightedSubsectionsGrader([])
|
||||
|
||||
graded = weighted_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.5106547619047619)
|
||||
self.assertAlmostEqual(graded['percent'], 0.50812499999999994)
|
||||
self.assertEqual(len(graded['section_breakdown']), (12 + 1) + (7 + 1) + 1)
|
||||
self.assertEqual(len(graded['grade_breakdown']), 3)
|
||||
|
||||
graded = over_one_weights_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.7688095238095238)
|
||||
self.assertAlmostEqual(graded['percent'], 0.76624999999999999)
|
||||
self.assertEqual(len(graded['section_breakdown']), (12 + 1) + (7 + 1) + 1)
|
||||
self.assertEqual(len(graded['grade_breakdown']), 3)
|
||||
|
||||
graded = zero_weights_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.2525)
|
||||
self.assertAlmostEqual(graded['percent'], 0.25)
|
||||
self.assertEqual(len(graded['section_breakdown']), (12 + 1) + (7 + 1) + 1)
|
||||
self.assertEqual(len(graded['grade_breakdown']), 3)
|
||||
|
||||
@@ -278,7 +283,7 @@ class GraderTest(unittest.TestCase):
|
||||
empty_grader = graders.grader_from_conf([])
|
||||
|
||||
graded = weighted_grader.grade(self.test_gradesheet)
|
||||
self.assertAlmostEqual(graded['percent'], 0.5106547619047619)
|
||||
self.assertAlmostEqual(graded['percent'], 0.50812499999999994)
|
||||
self.assertEqual(len(graded['section_breakdown']), (12 + 1) + (7 + 1) + 1)
|
||||
self.assertEqual(len(graded['grade_breakdown']), 3)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user