Commit 5535f68b by Matt Drayer Committed by Jonathan Piacenti

mattdrayer/test_graders_fix: Added due field to Score namedtuples

parent 4219e1af
...@@ -10,7 +10,7 @@ log = logging.getLogger("edx.courseware") ...@@ -10,7 +10,7 @@ log = logging.getLogger("edx.courseware")
# This is a tuple for holding scores, either from problems or sections. # This is a tuple for holding scores, either from problems or sections.
# Section either indicates the name of the problem or the name of the section # Section either indicates the name of the problem or the name of the section
Score = namedtuple("Score", "earned possible graded section module_id") Score = namedtuple("Score", "earned possible graded section module_id due")
def aggregate_scores(scores, section_name="summary"): def aggregate_scores(scores, section_name="summary"):
...@@ -32,7 +32,8 @@ def aggregate_scores(scores, section_name="summary"): ...@@ -32,7 +32,8 @@ def aggregate_scores(scores, section_name="summary"):
total_possible, total_possible,
False, False,
section_name, section_name,
None None,
None,
) )
# selecting only graded things # selecting only graded things
graded_total = Score( graded_total = Score(
...@@ -40,7 +41,8 @@ def aggregate_scores(scores, section_name="summary"): ...@@ -40,7 +41,8 @@ def aggregate_scores(scores, section_name="summary"):
total_possible_graded, total_possible_graded,
True, True,
section_name, section_name,
None None,
None,
) )
return all_total, graded_total return all_total, graded_total
......
...@@ -13,26 +13,44 @@ class GradesheetTest(unittest.TestCase): ...@@ -13,26 +13,44 @@ class GradesheetTest(unittest.TestCase):
Score.__sub__ = lambda me, other: (me.earned - other.earned) + (me.possible - other.possible) Score.__sub__ = lambda me, other: (me.earned - other.earned) + (me.possible - other.possible)
all_total, graded_total = aggregate_scores(scores) all_total, graded_total = aggregate_scores(scores)
self.assertEqual(all_total, Score(earned=0, possible=0, graded=False, section="summary", module_id=None)) self.assertEqual(
self.assertEqual(graded_total, Score(earned=0, possible=0, graded=True, section="summary", module_id=None)) all_total,
Score(earned=0, possible=0, graded=False, section="summary", module_id=None, due=None)
)
self.assertEqual(
graded_total, Score(earned=0, possible=0, graded=True, section="summary", module_id=None, due=None)
)
scores.append(Score(earned=0, possible=5, graded=False, section="summary", module_id=None)) scores.append(Score(earned=0, possible=5, graded=False, section="summary", module_id=None, due=None))
all_total, graded_total = aggregate_scores(scores) all_total, graded_total = aggregate_scores(scores)
self.assertEqual(all_total, Score(earned=0, possible=5, graded=False, section="summary", module_id=None)) self.assertEqual(
self.assertEqual(graded_total, Score(earned=0, possible=0, graded=True, section="summary", module_id=None)) all_total,
Score(earned=0, possible=5, graded=False, section="summary", module_id=None, due=None)
)
self.assertEqual(
graded_total,
Score(earned=0, possible=0, graded=True, section="summary", module_id=None, due=None)
)
scores.append(Score(earned=3, possible=5, graded=True, section="summary", module_id=None)) scores.append(Score(earned=3, possible=5, graded=True, section="summary", module_id=None, due=None))
all_total, graded_total = aggregate_scores(scores) all_total, graded_total = aggregate_scores(scores)
self.assertAlmostEqual(all_total, Score(earned=3, possible=10, graded=False, section="summary", module_id=None))
self.assertAlmostEqual( self.assertAlmostEqual(
graded_total, Score(earned=3, possible=5, graded=True, section="summary", module_id=None) all_total,
Score(earned=3, possible=10, graded=False, section="summary", module_id=None, due=None)
)
self.assertAlmostEqual(
graded_total,
Score(earned=3, possible=5, graded=True, section="summary", module_id=None, due=None)
) )
scores.append(Score(earned=2, possible=5, graded=True, section="summary", module_id=None)) scores.append(Score(earned=2, possible=5, graded=True, section="summary", module_id=None, due=None))
all_total, graded_total = aggregate_scores(scores) all_total, graded_total = aggregate_scores(scores)
self.assertAlmostEqual(all_total, Score(earned=5, possible=15, graded=False, section="summary", module_id=None))
self.assertAlmostEqual( self.assertAlmostEqual(
graded_total, Score(earned=5, possible=10, graded=True, section="summary", module_id=None) all_total,
Score(earned=5, possible=15, graded=False, section="summary", module_id=None, due=None)
)
self.assertAlmostEqual(
graded_total, Score(earned=5, possible=10, graded=True, section="summary", module_id=None, due=None)
) )
...@@ -49,19 +67,19 @@ class GraderTest(unittest.TestCase): ...@@ -49,19 +67,19 @@ class GraderTest(unittest.TestCase):
} }
test_gradesheet = { test_gradesheet = {
'Homework': [Score(earned=2, possible=20.0, graded=True, section='hw1', module_id=None), 'Homework': [Score(earned=2, possible=20.0, graded=True, section='hw1', module_id=None, due=None),
Score(earned=16, possible=16.0, graded=True, section='hw2', module_id=None)], Score(earned=16, possible=16.0, graded=True, section='hw2', module_id=None, due=None)],
# The dropped scores should be from the assignments that don't exist yet # The dropped scores should be from the assignments that don't exist yet
'Lab': [Score(earned=1, possible=2.0, graded=True, section='lab1', module_id=None), # Dropped 'Lab': [Score(earned=1, possible=2.0, graded=True, section='lab1', module_id=None, due=None), # Dropped
Score(earned=1, possible=1.0, graded=True, section='lab2', module_id=None), Score(earned=1, possible=1.0, graded=True, section='lab2', module_id=None, due=None),
Score(earned=1, possible=1.0, graded=True, section='lab3', module_id=None), Score(earned=1, possible=1.0, graded=True, section='lab3', module_id=None, due=None),
Score(earned=5, possible=25.0, graded=True, section='lab4', module_id=None), # Dropped Score(earned=5, possible=25.0, graded=True, section='lab4', module_id=None, due=None), # Dropped
Score(earned=3, possible=4.0, graded=True, section='lab5', module_id=None), # Dropped Score(earned=3, possible=4.0, graded=True, section='lab5', module_id=None, due=None), # Dropped
Score(earned=6, possible=7.0, graded=True, section='lab6', module_id=None), Score(earned=6, possible=7.0, graded=True, section='lab6', module_id=None, due=None),
Score(earned=5, possible=6.0, graded=True, section='lab7', module_id=None)], Score(earned=5, possible=6.0, graded=True, section='lab7', module_id=None, due=None)],
'Midterm': [Score(earned=50.5, possible=100, graded=True, section="Midterm Exam", module_id=None), ], 'Midterm': [Score(earned=50.5, possible=100, graded=True, section="Midterm Exam", module_id=None, due=None), ],
} }
def test_single_section_grader(self): def test_single_section_grader(self):
......
...@@ -253,7 +253,8 @@ def _grade(student, request, course, keep_raw_scores): ...@@ -253,7 +253,8 @@ def _grade(student, request, course, keep_raw_scores):
total, total,
graded, graded,
module_descriptor.display_name_with_default, module_descriptor.display_name_with_default,
section_due module_descriptor.location,
section_due,
) )
) )
...@@ -261,7 +262,7 @@ def _grade(student, request, course, keep_raw_scores): ...@@ -261,7 +262,7 @@ def _grade(student, request, course, keep_raw_scores):
if keep_raw_scores: if keep_raw_scores:
raw_scores += scores raw_scores += scores
else: else:
graded_total = Score(0.0, 1.0, True, section_name, section_due) graded_total = Score(0.0, 1.0, True, section_name, None, section_due)
#Add the graded total to totaled_scores #Add the graded total to totaled_scores
if graded_total.possible > 0: if graded_total.possible > 0:
...@@ -402,7 +403,8 @@ def _progress_summary(student, request, course): ...@@ -402,7 +403,8 @@ def _progress_summary(student, request, course):
total, total,
graded, graded,
module_descriptor.display_name_with_default, module_descriptor.display_name_with_default,
due module_descriptor.location,
due,
) )
) )
......
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