From 59207be5f8bfe61bf5b78c2087bde1d1cceeaff2 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Tue, 26 Sep 2023 17:52:29 +0200 Subject: [PATCH] Add body_exists to MockRequest in aiohttp util (#100932) * Add body_exists to MockRequest in aiohttp util * Add body_exists to MockRequest in aiohttp util * Add body_exists to MockRequest in aiohttp util --- homeassistant/util/aiohttp.py | 5 +++++ tests/util/test_aiohttp.py | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/homeassistant/util/aiohttp.py b/homeassistant/util/aiohttp.py index 6e2cfc5325d..ceb5e502221 100644 --- a/homeassistant/util/aiohttp.py +++ b/homeassistant/util/aiohttp.py @@ -66,6 +66,11 @@ class MockRequest: """Return the body as text.""" return MockStreamReader(self._content) + @property + def body_exists(self) -> bool: + """Return True if request has HTTP BODY, False otherwise.""" + return bool(self._text) + async def json(self, loads: JSONDecoder = json_loads) -> Any: """Return the body as JSON.""" return loads(self._text) diff --git a/tests/util/test_aiohttp.py b/tests/util/test_aiohttp.py index ebcc9cec526..76394b42491 100644 --- a/tests/util/test_aiohttp.py +++ b/tests/util/test_aiohttp.py @@ -12,12 +12,19 @@ async def test_request_json() -> None: async def test_request_text() -> None: - """Test a JSON request.""" + """Test bytes in request.""" request = aiohttp.MockRequest(b"hello", status=201, mock_source="test") + assert request.body_exists assert request.status == 201 assert await request.text() == "hello" +async def test_request_body_exists() -> None: + """Test body exists.""" + request = aiohttp.MockRequest(b"", mock_source="test") + assert not request.body_exists + + async def test_request_post_query() -> None: """Test a JSON request.""" request = aiohttp.MockRequest(