"""Plan and verifier tests. Author: Sandeep Belgavi.""" import unittest from pattern_03 import Step, execute, verify class PlannerTests(unittest.TestCase): def test_verified(self): self.assertTrue(verify(execute(lambda: [Step("x", "L")], {"L": "high"}), {"L": "high"})) def test_empty_plan(self): with self.assertRaises(ValueError): execute(lambda: [], {}) def test_oversized(self): with self.assertRaises(ValueError): execute(lambda: [Step(str(i), "L") for i in range(4)], {}) def test_duplicate_steps(self): with self.assertRaises(ValueError): execute(lambda: [Step("x", "L"), Step("x", "M")], {}) def test_malformed(self): with self.assertRaises(ValueError): execute(lambda: ["restart"], {}) with self.assertRaises(ValueError): execute(lambda: [Step([], "L")], {}) def test_missing_source(self): self.assertFalse(verify(execute(lambda: [Step("x", "L")], {}), {})) def test_conflicting_source(self): self.assertFalse(verify(execute(lambda: [Step("x", "L")], {"L": "high"}), {"L": "normal"})) def test_empty_not_success(self): self.assertFalse(verify([], {})) self.assertFalse(verify([{"claim": "degraded", "ref": []}], {})) if __name__ == "__main__": unittest.main()