def test_body_disconnect(self) -> None: async def receive() -> Message: return {"type": "http.disconnect"} req = Request({}, receive) loop = asyncio.get_event_loop() self.assertRaises(RuntimeError, lambda: loop.run_until_complete(req.body()))
def test_body_unexpected_message(self) -> None: async def receive() -> Message: return {"type": "abc"} req = Request({}, receive) loop = asyncio.get_event_loop() self.assertRaises(NotImplementedError, lambda: loop.run_until_complete(req.body()))
def test_body_empty(self) -> None: async def receive() -> Message: return { "type": "http.request", "body": "", } req = Request({}, receive) loop = asyncio.get_event_loop() body = loop.run_until_complete(req.body()) self.assertEqual(body, b"")
def test_body(self) -> None: receive_chuncks = [b"Hello", b", ", b"world", b"!"] it = receive_chuncks.__iter__() async def receive() -> Message: try: return { "type": "http.request", "body": it.__next__(), "more_body": True, } except StopIteration: return {"type": "http.request"} req = Request({}, receive) loop = asyncio.get_event_loop() body = loop.run_until_complete(req.body()) self.assertEqual(body, b"Hello, world!")