Exemple #1
0
    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()))
Exemple #2
0
    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()))
Exemple #3
0
    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"")
Exemple #4
0
    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!")