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_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_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()
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_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()