summaryrefslogtreecommitdiff
path: root/grades/tests/test_models.py
blob: f8d5c5c1b49968eaa33d3c754b7536494eb83130 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)