1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import unittest
import app
class ApplicationTests(unittest.TestCase):
def test_routing(self):
router = app.Router()
router.subscribe("created", lambda payload: payload["id"])
self.assertEqual(router.publish({"type": "unknown", "payload": {}}), [])
self.assertEqual(router.publish({"type": "created", "payload": {"id": "sample"}}), [{"ok": True, "result": "sample"}])
def test_failure_isolation(self):
router = app.Router()
router.subscribe("created", lambda payload: 1 / 0)
router.subscribe("created", lambda payload: "delivered")
result = router.publish({"type": "created", "payload": {}})
self.assertFalse(result[0]["ok"])
self.assertEqual(result[1]["result"], "delivered")
if __name__ == "__main__":
unittest.main()