"""Routing boundary tests. Author: Sandeep Belgavi.""" import unittest from pattern_04 import Ticket, dispatch class RouterTests(unittest.TestCase): def call(self, route="latency", workers=None, service="checkout"): return dispatch(Ticket("i", service, "slow"), lambda _: route, {"latency": lambda _: "fixture:L1"} if workers is None else workers, {"checkout"}) def test_valid(self): self.assertEqual(self.call()["status"], "review") def test_unknown_route(self): self.assertEqual(self.call("root")["status"], "escalate") def test_wrong_service(self): self.assertEqual(self.call(service="payments")["status"], "denied") def test_unavailable(self): self.assertEqual(self.call(workers={})["status"], "unavailable") def test_result_contract(self): self.assertEqual(self.call(workers={"latency": lambda _: "fixed"})["status"], "invalid_result") def test_worker_error(self): def fail(_): raise RuntimeError() self.assertEqual(self.call(workers={"latency": fail})["status"], "worker_error") def test_envelope_minimized(self): seen = [] def worker(value): seen.append(value); return "fixture:L1" self.call(workers={"latency": worker}) self.assertEqual(set(seen[0]), {"incident", "service"}) def test_bad_router_type(self): self.assertEqual(self.call(["latency"])["status"], "escalate") if __name__ == "__main__": unittest.main()