Exemple #1
0
 def test_create_bad_params(self):
     """
     Confirms create will fail if params are missing.
     """
     del self.params["earned_graded"]
     with self.assertRaises(IntegrityError):
         PersistentSubsectionGrade.create_grade(**self.params)
Exemple #2
0
 def test_create(self):
     """
     Tests model creation, and confirms error when trying to recreate model.
     """
     created_grade = PersistentSubsectionGrade.create_grade(**self.params)
     with self.assertNumQueries(1):
         read_grade = PersistentSubsectionGrade.read_grade(
             user_id=self.params["user_id"],
             usage_key=self.params["usage_key"],
         )
         self.assertEqual(created_grade, read_grade)
         self.assertEqual(read_grade.visible_blocks.blocks, self.block_records)
     with self.assertRaises(IntegrityError):
         PersistentSubsectionGrade.create_grade(**self.params)
 def test_grade_override(self):
     grade = PersistentSubsectionGrade.create_grade(**self.params)
     override = PersistentSubsectionGradeOverride(grade=grade, earned_all_override=0.0, earned_graded_override=0.0)
     override.save()
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertEqual(grade.earned_all, 0.0)
     self.assertEqual(grade.earned_graded, 0.0)
 def create_model(self, student):
     """
     Saves the subsection grade in a persisted model.
     """
     if self._should_persist_per_attempted:
         self._log_event(log.debug, u"create_model", student)
         return PersistentSubsectionGrade.create_grade(**self._persisted_model_params(student))
Exemple #5
0
 def create_model(self, student):
     """
     Saves the subsection grade in a persisted model.
     """
     self._log_event(log.debug, u"create_model", student)
     return PersistentSubsectionGrade.create_grade(
         **self._persisted_model_params(student))
 def test_unattempted(self):
     self.params['first_attempted'] = None
     self.params['earned_all'] = 0.0
     self.params['earned_graded'] = 0.0
     grade = PersistentSubsectionGrade.create_grade(**self.params)
     self.assertIsNone(grade.first_attempted)
     self.assertEqual(grade.earned_all, 0.0)
     self.assertEqual(grade.earned_graded, 0.0)
Exemple #7
0
 def test_grade_override(self):
     grade = PersistentSubsectionGrade.create_grade(**self.params)
     override = PersistentSubsectionGradeOverride(
         grade=grade, earned_all_override=0.0, earned_graded_override=0.0)
     override.save()
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertEqual(grade.earned_all, 0.0)
     self.assertEqual(grade.earned_graded, 0.0)
 def test_unattempted(self):
     self.params['first_attempted'] = None
     self.params['earned_all'] = 0.0
     self.params['earned_graded'] = 0.0
     grade = PersistentSubsectionGrade.create_grade(**self.params)
     self.assertIsNone(grade.first_attempted)
     self.assertEqual(grade.earned_all, 0.0)
     self.assertEqual(grade.earned_graded, 0.0)
Exemple #9
0
    def test_update_or_create_grade(self, already_created):
        created_grade = PersistentSubsectionGrade.create_grade(**self.params) if already_created else None

        self.params["earned_all"] = 7
        updated_grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
        self.assertEqual(updated_grade.earned_all, 7)
        if already_created:
            self.assertEqual(created_grade.id, updated_grade.id)
            self.assertEqual(created_grade.earned_all, 6)
Exemple #10
0
 def test_non_optional_fields(self, field, error):
     del self.params[field]
     with self.assertRaises(error):
         PersistentSubsectionGrade.create_grade(**self.params)
Exemple #11
0
 def test_optional_fields(self, field):
     del self.params[field]
     PersistentSubsectionGrade.create_grade(**self.params)
Exemple #12
0
 def test_create_inconsistent_unattempted(self):
     self.params['attempted'] = False
     with self.assertRaises(ValidationError):
         PersistentSubsectionGrade.create_grade(**self.params)
 def create_model(self, student):
     """
     Saves the subsection grade in a persisted model.
     """
     self._log_event(log.info, u"create_model", student)
     return PersistentSubsectionGrade.create_grade(**self._persisted_model_params(student))
 def test_create_event(self):
     with patch('lms.djangoapps.grades.models.tracker') as tracker_mock:
         grade = PersistentSubsectionGrade.create_grade(**self.params)
     self._assert_tracker_emitted_event(tracker_mock, grade)
 def test_unattempted_save_does_not_remove_attempt(self):
     PersistentSubsectionGrade.create_grade(**self.params)
     self.params['first_attempted'] = None
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertIsInstance(grade.first_attempted, datetime)
     self.assertEqual(grade.earned_all, 6.0)
 def test_first_attempted_not_changed_on_update(self):
     PersistentSubsectionGrade.create_grade(**self.params)
     moment = now()
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertLess(grade.first_attempted, moment)
 def test_course_version_is_optional(self):
     del self.params["course_version"]
     PersistentSubsectionGrade.create_grade(**self.params)
 def test_create_inconsistent_unattempted(self):
     self.params['attempted'] = False
     with self.assertRaises(ValidationError):
         PersistentSubsectionGrade.create_grade(**self.params)
 def test_course_version_is_optional(self):
     del self.params["course_version"]
     PersistentSubsectionGrade.create_grade(**self.params)
 def test_create_event(self):
     with patch('lms.djangoapps.grades.models.tracker') as tracker_mock:
         grade = PersistentSubsectionGrade.create_grade(**self.params)
     self._assert_tracker_emitted_event(tracker_mock, grade)
 def test_unattempted_save_does_not_remove_attempt(self):
     PersistentSubsectionGrade.create_grade(**self.params)
     self.params['first_attempted'] = None
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertIsInstance(grade.first_attempted, datetime)
     self.assertEqual(grade.earned_all, 6.0)
 def test_first_attempted_not_changed_on_update(self):
     PersistentSubsectionGrade.create_grade(**self.params)
     moment = now()
     grade = PersistentSubsectionGrade.update_or_create_grade(**self.params)
     self.assertLess(grade.first_attempted, moment)