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):