Skip to main content
Branchfeature/review-demo
21 lines · 815 BBlameRaw
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()