def test_clean_max_greater_than_min_works(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(assignment=self.assignment),
         minimum_points=0,
         maximum_points=1,
         grade='D'
     )
     pointrange_to_grade.clean() # Should work without error
 def test_clean_max_greater_than_min_works(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(
             assignment=self.assignment),
         minimum_points=0,
         maximum_points=1,
         grade='D')
     pointrange_to_grade.clean()  # Should work without error
 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_max_equal_to_min_works(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(
             assignment=self.assignment),
         minimum_points=1,
         maximum_points=1,
         grade='D')
     with self.assertRaises(ValidationError):
         pointrange_to_grade.clean()
 def test_clean_max_equal_to_min_works(self):
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(assignment=self.assignment),
         minimum_points=1,
         maximum_points=1,
         grade='D'
     )
     with self.assertRaises(ValidationError):
         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()
 def test_clean_overlapping_other_on_same_assignment_fails(self):
     point_to_grade_map = PointToGradeMap.objects.create(
         assignment=self.assignment)
     point_to_grade_map.pointrangetograde_set.create(minimum_points=10,
                                                     maximum_points=20,
                                                     grade='D')
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=point_to_grade_map,
         minimum_points=12,
         maximum_points=18,
         grade='C')
     with self.assertRaises(ValidationError):
         pointrange_to_grade.clean()
 def test_clean_does_not_match_overlapping_range_in_other_assignments(self):
     assignment2 = self.periodbuilder.add_assignment(
         'assignment2', max_points=100).assignment
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(
             assignment=self.assignment),
         minimum_points=12,
         maximum_points=18,
         grade='D')
     PointRangeToGrade(point_to_grade_map=PointToGradeMap.objects.create(
         assignment=assignment2),
                       minimum_points=10,
                       maximum_points=20,
                       grade='C').save()
     pointrange_to_grade.clean()
 def test_clean_overlapping_other_on_same_assignment_fails(self):
     point_to_grade_map = PointToGradeMap.objects.create(assignment=self.assignment)
     pointrange_to_grade = point_to_grade_map.pointrangetograde_set.create(
         minimum_points=10,
         maximum_points=20,
         grade='D'
     )
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=point_to_grade_map,
         minimum_points=12,
         maximum_points=18,
         grade='C'
     )
     with self.assertRaises(ValidationError):
         pointrange_to_grade.clean()
 def test_clean_does_not_match_overlapping_range_in_other_assignments(self):
     assignment2 = self.periodbuilder.add_assignment('assignment2').assignment
     pointrange_to_grade = PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(assignment=self.assignment),
         minimum_points=12,
         maximum_points=18,
         grade='D'
     )
     PointRangeToGrade(
         point_to_grade_map=PointToGradeMap.objects.create(assignment=assignment2),
         minimum_points=10,
         maximum_points=20,
         grade='C'
     ).save()
     pointrange_to_grade.clean()