summaryrefslogtreecommitdiff
path: root/grades/tests/test_models.py
diff options
context:
space:
mode:
authorprathamesh2018-02-08 14:29:38 +0530
committeradityacp2018-03-21 17:32:41 +0530
commitb3f5721f3cf4225902000f2f76e5138135383792 (patch)
tree21ab4b9c9d4ad5d900c1de15f7254faea689094b /grades/tests/test_models.py
parent06abd01fd28eb10aafd18dd60b790549e0233edc (diff)
downloadonline_test-b3f5721f3cf4225902000f2f76e5138135383792.tar.gz
online_test-b3f5721f3cf4225902000f2f76e5138135383792.tar.bz2
online_test-b3f5721f3cf4225902000f2f76e5138135383792.zip
Add weightage for Quiz and Create Grading System App
App Name: grades Grading System provides with the grade for a given value. It contains different grade ranges. Has its own default grading system. Allows you to modify and add grading system wth grade ranges. To be done: - Need to add README - Good UI - There are fields like can_be_used and order in models for future use. - More tests App name: Yaksh Now every quiz has a default weightage of 100%, can be changed. An aggregate is calculated for a given course. Using grades app a grade is provide to the aggregate value.
Diffstat (limited to 'grades/tests/test_models.py')
-rw-r--r--grades/tests/test_models.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/grades/tests/test_models.py b/grades/tests/test_models.py
new file mode 100644
index 0000000..89708e2
--- /dev/null
+++ b/grades/tests/test_models.py
@@ -0,0 +1,27 @@
+from django.test import TestCase
+from grades.models import GradingSystem, GradeRange
+
+# Create your tests here.
+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
+ grading_system = GradingSystem.objects.get(name='unusable')
+ # When
+ grade = grading_system.get_grade(29)
+ # Then
+ self.assertIsNone(grade)
+