From d2d25d74af7f9fbb256a37d143608ff4995c2ef1 Mon Sep 17 00:00:00 2001 From: Yi Zhan Date: Sat, 22 Aug 2026 13:09:46 +0000 Subject: [PATCH] Pass expand via params in ConfluenceServer.get_page_space Fixes TypeError on 5.0.0+ where get() no longer accepts expand=. Credit @TechVoyager. Fixes #1663. --- atlassian/confluence/server/__init__.py | 2 +- tests/confluence/test_confluence_server.py | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/atlassian/confluence/server/__init__.py b/atlassian/confluence/server/__init__.py index 368ed8e2c..032bfa51f 100644 --- a/atlassian/confluence/server/__init__.py +++ b/atlassian/confluence/server/__init__.py @@ -238,7 +238,7 @@ def get_content_id(self, space_key, title, content_type="page"): def get_page_space(self, page_id): """Get space key from page ID.""" - page = self.get_content(page_id, expand="space") + page = self.get(f"content/{page_id}", params={"expand": "space"}) return page.get("space", {}).get("key") def get_page_child_by_type(self, page_id, type="page", start=None, limit=None, expand=None): diff --git a/tests/confluence/test_confluence_server.py b/tests/confluence/test_confluence_server.py index 1b964cd07..770976ede 100644 --- a/tests/confluence/test_confluence_server.py +++ b/tests/confluence/test_confluence_server.py @@ -927,9 +927,26 @@ def test_get_page_space(self, mock_get, confluence_server): """Test get_page_space method.""" mock_get.return_value = {"space": {"key": "TEST"}} result = confluence_server.get_page_space("123") - mock_get.assert_called_once_with("content/123", expand="space") + mock_get.assert_called_once_with("content/123", params={"expand": "space"}) assert result == "TEST" + def test_get_page_space_uses_expand_query_param(self, confluence_server): + """get_page_space must pass expand via params so AtlassianRestAPI.get() accepts the call.""" + response = Response() + response.status_code = 200 + response.reason = "OK" + response._content = b'{"space": {"key": "TEST"}}' + + with patch.object(confluence_server._session, "request", return_value=response) as mock_request: + result = confluence_server.get_page_space("123") + + assert result == "TEST" + url = mock_request.call_args.kwargs["url"] + params = mock_request.call_args.kwargs.get("params") or {} + assert url.startswith("https://test.confluence.com/rest/api/content/123") + expand = params.get("expand") if isinstance(params, dict) else None + assert expand == "space" or "expand=space" in url + # Space Management Tests @patch.object(ConfluenceServer, "get") def test_get_spaces(self, mock_get, confluence_server):