summaryrefslogtreecommitdiff
path: root/grades/tests/test_models.py
diff options
context:
space:
mode:
Diffstat (limited to 'grades/tests/test_models.py')
-rw-r--r--grades/tests/test_models.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/grades/tests/test_models.py b/grades/tests/test_models.py
new file mode 100644
index 0000000..f8d5c5c
--- /dev/null
+++ b/grades/tests/test_models.py
@@ -0,0 +1,28 @@
+from django.test import TestCase
+from grades.models import GradingSystem, GradeRange
+
+
+class GradingSystemTestCase(TestCase):
+ def setUp(self):
+ GradingSystem.objects.create(name='unusable')
+
+ def test_get_grade(self):
+ # Given
+ grading_system = GradingSystem.objects.get(name='default')
+ expected_grades = {0: 'F', 31: 'F', 49: 'P', 55: 'C', 60: 'B', 80: 'A',
+ 95: 'A+', 100: 'A+', 100.5: 'A+', 101: None,
+ 109: None}
+ for marks in expected_grades.keys():
+ # When
+ grade = grading_system.get_grade(marks)
+ # Then
+ self.assertEqual(expected_grades.get(marks), grade)
+
+ def test_grade_system_unusable(self):
+ # Given
+ # System with out ranges
+ grading_system = GradingSystem.objects.get(name='unusable')
+ # When
+ grade = grading_system.get_grade(29)
+ # Then
+ self.assertIsNone(grade)