"""Workflow transition tests. Author: Sandeep Belgavi.""" import unittest from pattern_02 import Checkpoint, advance class WorkflowTests(unittest.TestCase): def test_classifier_seam(self): self.assertEqual(advance(Checkpoint("i"), lambda _: "latency", {}).stage, "classified") def test_invalid_category(self): with self.assertRaises(ValueError): advance(Checkpoint("i"), lambda _: "restart", {}) def test_missing_evidence(self): with self.assertRaises(ValueError): advance(Checkpoint("i", "classified", "latency"), None, {}) def test_resume_skips_classifier(self): self.assertEqual(advance(Checkpoint("i", "classified", "latency"), None, {"latency": "L"}).stage, "collected") def test_finish(self): self.assertEqual(advance(Checkpoint("i", "collected", "latency", "L"), None, {}).stage, "ready") def test_ready_idempotent(self): state = Checkpoint("i", "ready", "latency", "L") self.assertEqual(advance(state, None, {}), state) def test_corrupt_checkpoint(self): with self.assertRaises(ValueError): advance(Checkpoint("i", "ready"), None, {}) def test_unknown_stage(self): with self.assertRaises(ValueError): advance(Checkpoint("i", "jump"), None, {}) if __name__ == "__main__": unittest.main()