From c8137a698d352c44151e1922685c1bd0ecf642f1 Mon Sep 17 00:00:00 2001 From: Adam James Date: Mon, 20 Apr 2026 17:15:19 +0100 Subject: [PATCH] Fix start_scan() and get_scan_status() The startScan and getScanStatus endpoints return a subsonic-response with a nested scanStatus element on success. --- src/libopensonic/_async/connection.py | 4 ++-- src/libopensonic/_sync/connection.py | 4 ++-- test/test_connection.py | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/libopensonic/_async/connection.py b/src/libopensonic/_async/connection.py index 1dd998d..2b80863 100644 --- a/src/libopensonic/_async/connection.py +++ b/src/libopensonic/_async/connection.py @@ -1401,7 +1401,7 @@ async def get_scan_status(self) -> ScanStatus: res = await self._do_request(method) dres = await self._handle_info_res(res) self._check_status(dres) - return ScanStatus.from_dict(dres['scanstatus']) + return ScanStatus.from_dict(dres['scanStatus']) async def get_shares(self) -> list[Share]: @@ -2057,7 +2057,7 @@ async def start_scan(self) -> ScanStatus: res = await self._do_request(method) dres = await self._handle_info_res(res) self._check_status(dres) - return ScanStatus.from_dict(dres['scanstatus']) + return ScanStatus.from_dict(dres['scanStatus']) async def stream(self, sid:str, max_bit_rate:int=0, tformat:str|None=None, diff --git a/src/libopensonic/_sync/connection.py b/src/libopensonic/_sync/connection.py index 8bfd155..9e39018 100644 --- a/src/libopensonic/_sync/connection.py +++ b/src/libopensonic/_sync/connection.py @@ -1401,7 +1401,7 @@ def get_scan_status(self) -> ScanStatus: res = self._do_request(method) dres = self._handle_info_res(res) self._check_status(dres) - return ScanStatus.from_dict(dres['scanstatus']) + return ScanStatus.from_dict(dres['scanStatus']) def get_shares(self) -> list[Share]: @@ -2057,7 +2057,7 @@ def start_scan(self) -> ScanStatus: res = self._do_request(method) dres = self._handle_info_res(res) self._check_status(dres) - return ScanStatus.from_dict(dres['scanstatus']) + return ScanStatus.from_dict(dres['scanStatus']) def stream(self, sid:str, max_bit_rate:int=0, tformat:str|None=None, diff --git a/test/test_connection.py b/test/test_connection.py index 94aaba4..ab6c805 100644 --- a/test/test_connection.py +++ b/test/test_connection.py @@ -1446,7 +1446,7 @@ class TestScanExtensions: async def test_get_scan_status(self, conn, mock_session, mock_response): """Test get_scan_status.""" status = { - "scanstatus": { + "scanStatus": { "scanning": False, "count": 1000 } @@ -1457,12 +1457,13 @@ async def test_get_scan_status(self, conn, mock_session, mock_response): result = await conn.get_scan_status() assert isinstance(result, ScanStatus) assert result.scanning is False + assert result.count == 1000 @pytest.mark.asyncio async def test_start_scan(self, conn, mock_session, mock_response): """Test start_scan.""" status = { - "scanstatus": { + "scanStatus": { "scanning": True, "count": 0 } @@ -1473,6 +1474,7 @@ async def test_start_scan(self, conn, mock_session, mock_response): result = await conn.start_scan() assert isinstance(result, ScanStatus) assert result.scanning is True + assert result.count == 0 @pytest.mark.asyncio async def test_get_open_subsonic_extensions(self, conn, mock_session, mock_response):