From 9721912e6a3e22a562b014233d1b8ade43c2b078 Mon Sep 17 00:00:00 2001 From: mrcrysta1 Date: Sat, 22 Aug 2026 19:02:17 +0500 Subject: [PATCH] fix(confluence): pass expand param correctly in get_page_space() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_page_space() passed expand='space' as a keyword argument to self.get(), but AtlassianRestAPI.get() does not accept expand as a keyword — it expects it inside a params dict. This caused a TypeError when calling get_page_space() on Confluence Server v5.0.0+. Fix by building a params dict and passing it to self.get() directly, matching the pattern used by get_page_by_id() in the same file. Fixes #1663 --- atlassian/confluence/server/__init__.py | 3 ++- tests/confluence/test_confluence_server.py | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/atlassian/confluence/server/__init__.py b/atlassian/confluence/server/__init__.py index f00ec208d..662e2954e 100644 --- a/atlassian/confluence/server/__init__.py +++ b/atlassian/confluence/server/__init__.py @@ -170,7 +170,8 @@ 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") + params = {"expand": "space"} + page = self.get(f"content/{page_id}", params=params) 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 9965f1fd9..acd820f0c 100644 --- a/tests/confluence/test_confluence_server.py +++ b/tests/confluence/test_confluence_server.py @@ -859,9 +859,25 @@ 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" + @patch.object(ConfluenceServer, "get") + def test_get_page_space_no_space(self, mock_get, confluence_server): + """Test get_page_space returns None when page has no space.""" + mock_get.return_value = {"title": "Orphan Page"} + result = confluence_server.get_page_space("456") + mock_get.assert_called_once_with("content/456", params={"expand": "space"}) + assert result is None + + @patch.object(ConfluenceServer, "get") + def test_get_page_space_empty_space(self, mock_get, confluence_server): + """Test get_page_space returns None when space key is empty.""" + mock_get.return_value = {"space": {}} + result = confluence_server.get_page_space("789") + mock_get.assert_called_once_with("content/789", params={"expand": "space"}) + assert result is None + # Space Management Tests @patch.object(ConfluenceServer, "get") def test_get_spaces(self, mock_get, confluence_server):