def test_logging_for_save(self):
     with patch('lms.djangoapps.grades.models.log') as log_mock:
         PersistentSubsectionGrade.save_grade(**self.params)
         read_grade = PersistentSubsectionGrade.read_grade(
             user_id=self.params["user_id"],
             usage_key=self.params["usage_key"],
         )
         log_mock.info.assert_called_with(
             u"Persistent Grades: Grade model saved: {0}".format(read_grade)
         )
Example #2
0
 def test_save(self, already_created):
     if already_created:
         PersistentSubsectionGrade.objects.create(**self.params)
     module_prefix = "lms.djangoapps.grades.models.PersistentSubsectionGrade."
     with patch(module_prefix + "objects.get_or_create",
                wraps=PersistentSubsectionGrade.objects.get_or_create
                ) as mock_get_or_create:
         with patch(module_prefix + "update") as mock_update:
             PersistentSubsectionGrade.save_grade(**self.params)
             self.assertTrue(mock_get_or_create.called)
             self.assertEqual(mock_update.called, already_created)
Example #3
0
 def test_save(self, already_created):
     if already_created:
         PersistentSubsectionGrade.objects.create(**self.params)
     module_prefix = "lms.djangoapps.grades.models.PersistentSubsectionGrade."
     with patch(
         module_prefix + "objects.get_or_create",
         wraps=PersistentSubsectionGrade.objects.get_or_create
     ) as mock_get_or_create:
         with patch(module_prefix + "update") as mock_update:
             PersistentSubsectionGrade.save_grade(**self.params)
             self.assertTrue(mock_get_or_create.called)
             self.assertEqual(mock_update.called, already_created)
    def save(self, student, subsection, course):
        """
        Persist the SubsectionGrade.
        """
        visible_blocks = [
            BlockRecord(location, weight, score.possible)
            for location, (score, weight) in self.locations_to_weighted_scores.iteritems()
        ]

        PersistentSubsectionGrade.save_grade(
            user_id=student.id,
            usage_key=self.location,
            course_version=getattr(course, 'course_version', None),
            subtree_edited_timestamp=subsection.subtree_edited_on,
            earned_all=self.all_total.earned,
            possible_all=self.all_total.possible,
            earned_graded=self.graded_total.earned,
            possible_graded=self.graded_total.possible,
            visible_blocks=visible_blocks,
        )