def test_clean_not_unique_grade(self):
        point_to_grade_map = PointToGradeMap.objects.create(
            assignment=self.assignment)
        PointRangeToGrade(point_to_grade_map=point_to_grade_map,
                          minimum_points=1,
                          maximum_points=2,
                          grade='C').save()
        pointrange_to_grade = PointRangeToGrade(
            point_to_grade_map=point_to_grade_map,
            minimum_points=5,
            maximum_points=6,
            grade='C')

        with transaction.atomic():
            with self.assertRaises(IntegrityError):
                pointrange_to_grade.save()

        # Does not fail when in another assignment
        assignment2 = self.periodbuilder.add_assignment(
            'assignment2').assignment
        PointRangeToGrade(point_to_grade_map=PointToGradeMap.objects.create(
            assignment=assignment2),
                          minimum_points=5,
                          maximum_points=6,
                          grade='C').save()
    def test_clean_not_unique_grade(self):
        point_to_grade_map = PointToGradeMap.objects.create(assignment=self.assignment)
        PointRangeToGrade(
            point_to_grade_map=point_to_grade_map,
            minimum_points=1,
            maximum_points=2,
            grade='C'
        ).save()
        pointrange_to_grade = PointRangeToGrade(
            point_to_grade_map=point_to_grade_map,
            minimum_points=5,
            maximum_points=6,
            grade='C'
        )

        with transaction.atomic():
            with self.assertRaises(IntegrityError):
                pointrange_to_grade.save()

        # Does not fail when in another assignment
        assignment2 = self.periodbuilder.add_assignment('assignment2').assignment
        pointrange_to_grade = PointRangeToGrade(
            point_to_grade_map=PointToGradeMap.objects.create(assignment=assignment2),
            minimum_points=5,
            maximum_points=6,
            grade='C'
        ).save()
 def test_clean_existing_does_not_match_overlapping_range(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(
             assignment=self.assignment),
         minimum_points=12,
         maximum_points=18,
         grade='C')
     pointrange_to_grade.save()
     pointrange_to_grade.clean()
 def test_clean_existing_does_not_match_overlapping_range(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(assignment=self.assignment),
         minimum_points=12,
         maximum_points=18,
         grade='C'
     )
     pointrange_to_grade.save()
     pointrange_to_grade.clean()