77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
import sys
|
|
sys.path.append("..")
|
|
|
|
from valuation import BaseGrading
|
|
|
|
# Testing
|
|
import unittest
|
|
from unittest.mock import patch
|
|
class TestBaseGrading(unittest.TestCase):
|
|
test_schema = {"Grade1": 0.1, "Grade2": 0.3}
|
|
|
|
@patch.multiple(BaseGrading, __abstractmethods__=set())
|
|
def get_base_grader(self):
|
|
return BaseGrading(self.test_schema, "TestGrader")
|
|
|
|
def test_getter(self):
|
|
grader = self.get_base_grader()
|
|
self.assertEqual(grader.get("Grade1"), self.test_schema["Grade1"])
|
|
self.assertEqual(grader.get("grade1"), self.test_schema["Grade1"])
|
|
|
|
def test_len(self):
|
|
grader = self.get_base_grader()
|
|
self.assertEqual(len(grader), len(self.test_schema))
|
|
|
|
def test_contains(self):
|
|
grader = self.get_base_grader()
|
|
self.assertTrue(0.1 in grader)
|
|
self.assertTrue(0.9 in grader)
|
|
self.assertFalse(100 in grader)
|
|
self.assertFalse(None in grader)
|
|
self.assertTrue("Grade1" in grader)
|
|
self.assertTrue("gRADE2" in grader)
|
|
|
|
def test_iter(self):
|
|
grader = self.get_base_grader()
|
|
for grade, test in zip(grader, self.test_schema):
|
|
self.assertEqual(grade, test)
|
|
|
|
def test_reversed(self):
|
|
grader = self.get_base_grader()
|
|
for grade, test in zip(reversed(grader), reversed(self.test_schema)):
|
|
self.assertEqual(grade, test)
|
|
|
|
def test_str(self):
|
|
grader = self.get_base_grader()
|
|
self.assertEqual(str(grader), "TestGrader")
|
|
|
|
def test_repr(self):
|
|
grader = self.get_base_grader()
|
|
self.assertEqual(repr(grader), f"<TestGrader: ({str(self.test_schema)})>")
|
|
|
|
def test_eq(self):
|
|
grader = self.get_base_grader()
|
|
self.assertTrue(grader == grader)
|
|
self.assertTrue(grader != grader)
|
|
|
|
def test_keys(self):
|
|
grader = self.get_base_grader()
|
|
for k1, t1 in zip(grader.keys(), self.test_schema.keys()):
|
|
self.assertEqual(k1, t1)
|
|
|
|
def test_items(self):
|
|
grader = self.get_base_grader()
|
|
for v1, t1 in zip(grader.values(), self.test_schema.values()):
|
|
self.assertEqual(v1, t1)
|
|
|
|
def test_items(self):
|
|
grader = self.get_base_grader()
|
|
for g1, t1 in zip(grader.items(), self.test_schema.items()):
|
|
k, v = g1
|
|
tk, tv = t1
|
|
self.assertEqual(k, tk)
|
|
self.assertEqual(v, tv)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|