From 78a0154e3ffd59b0ae3f11bc9df54530d5673c51 Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Wed, 16 Jul 2025 00:36:54 +0200 Subject: [PATCH] Revert back to text as a function --- airos/airos8.py | 9 ++++++--- pyproject.toml | 2 +- tests/test_stations.py | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/airos/airos8.py b/airos/airos8.py index 9b4a59b..e2a6772 100644 --- a/airos/airos8.py +++ b/airos/airos8.py @@ -156,9 +156,11 @@ async def login(self) -> bool: if not airos_cookie_found and not ok_cookie_found: raise DataMissingError from None + response_text = await response.text() + if response.status == 200: try: - json.loads(response.text) + json.loads(response_text) self.connected = True return True except json.JSONDecodeError as err: @@ -191,14 +193,15 @@ async def status(self) -> dict: ) as response: if response.status == 200: try: - return json.loads(response.text) + response_text = await response.text() + return json.loads(response_text) except json.JSONDecodeError: logger.exception( "JSON Decode Error in authenticated status response" ) raise DataMissingError from None else: - log = f"Authenticated status.cgi failed: {response.status}. Response: {response.text}" + log = f"Authenticated status.cgi failed: {response.status}. Response: {response_text}" logger.error(log) except aiohttp.ClientError as err: logger.exception("Error during authenticated status.cgi call") diff --git a/pyproject.toml b/pyproject.toml index 4eacacc..dddee61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "airos" -version = "0.0.6" +version = "0.0.7" license = "MIT" description = "Ubiquity airOS module(s) for Python 3." readme = "README.md" diff --git a/tests/test_stations.py b/tests/test_stations.py index bf1b9ab..daa48e6 100644 --- a/tests/test_stations.py +++ b/tests/test_stations.py @@ -34,7 +34,7 @@ async def test_ap(airos_device, base_url, mode): # --- Prepare fake POST /api/auth response with cookies --- mock_login_response = MagicMock() mock_login_response.__aenter__.return_value = mock_login_response - mock_login_response.text = "{}" + mock_login_response.text = AsyncMock(return_value="{}") mock_login_response.status = 200 mock_login_response.cookies = cookie mock_login_response.headers = {"X-CSRF-ID": "test-csrf-token"} @@ -43,7 +43,7 @@ async def test_ap(airos_device, base_url, mode): mock_status_payload = fixture_data mock_status_response = MagicMock() mock_status_response.__aenter__.return_value = mock_status_response - mock_status_response.text = json.dumps(fixture_data) + mock_status_response.text = AsyncMock(return_value=json.dumps(fixture_data)) mock_status_response.status = 200 mock_status_response.json = AsyncMock(return_value=mock_status_payload)