Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions atlassian/confluence/cloud/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,12 @@ def get_users(self, **kwargs):
return self.get("rest/api/user", **kwargs)

def get_user(self, user_id, **kwargs):
"""Get user by ID."""
return self.get(f"rest/api/user/{user_id}", **kwargs)
"""Get user by account ID.

:param user_id: the user's account ID
"""
params = {**(kwargs.pop("params", None) or {}), "accountId": user_id}
return self.get("rest/api/user", params=params, **kwargs)

def get_current_user(self, **kwargs):
"""Get current user."""
Expand Down
27 changes: 24 additions & 3 deletions tests/confluence/test_confluence_cloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -694,10 +694,31 @@ def test_get_users(self, mock_get, confluence_cloud):
@patch.object(ConfluenceCloud, "get")
def test_get_user(self, mock_get, confluence_cloud):
"""Test get_user method."""
mock_get.return_value = {"id": "user1", "name": "Test User"}
mock_get.return_value = {"accountId": "user1", "displayName": "Test User"}
result = confluence_cloud.get_user("user1")
mock_get.assert_called_once_with("rest/api/user/user1", **{})
assert result == {"id": "user1", "name": "Test User"}
mock_get.assert_called_once_with("rest/api/user", params={"accountId": "user1"})
assert result == {"accountId": "user1", "displayName": "Test User"}

@patch.object(ConfluenceCloud, "get")
def test_get_user_keeps_extra_params(self, mock_get, confluence_cloud):
mock_get.return_value = {"accountId": "user1"}

assert confluence_cloud.get_user("user1", params={"expand": "personalSpace"}) == {"accountId": "user1"}
mock_get.assert_called_once_with("rest/api/user", params={"expand": "personalSpace", "accountId": "user1"})

def test_get_user_requests_wiki_user_endpoint(self, confluence_cloud):
response = Response()
response.status_code = 200
response._content = b'{"accountId": "557058:f58131cb", "displayName": "Test User"}'

with patch.object(confluence_cloud._session, "request", return_value=response) as mock_request:
assert confluence_cloud.get_user("557058:f58131cb") == {
"accountId": "557058:f58131cb",
"displayName": "Test User",
}

url = mock_request.call_args.kwargs["url"]
assert url == "https://test.atlassian.net/wiki/rest/api/user?accountId=557058%3Af58131cb"

@patch.object(ConfluenceCloud, "get")
def test_get_current_user(self, mock_get, confluence_cloud):
Expand Down
Loading