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