Skip to content

Commit fa365ba

Browse files
Added basic manifest support tests
1 parent 0133d7a commit fa365ba

1 file changed

Lines changed: 39 additions & 3 deletions

File tree

tests/core/service/user/user_service_test.py

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from unittest.mock import MagicMock, AsyncMock
1+
import json
2+
from pathlib import Path
3+
from unittest.mock import MagicMock, AsyncMock, mock_open, patch
24

35
import base64
46
import pytest
@@ -20,6 +22,7 @@
2022
from symphony.bdk.gen.pod_model.following_list_response import FollowingListResponse
2123
from symphony.bdk.gen.pod_model.integer_list import IntegerList
2224
from symphony.bdk.gen.pod_model.role_detail_list import RoleDetailList
25+
from symphony.bdk.gen.pod_model.service_account_manifest import ServiceAccountManifest
2326
from symphony.bdk.gen.pod_model.string_id import StringId
2427
from symphony.bdk.gen.pod_model.user_detail_list import UserDetailList
2528
from symphony.bdk.gen.pod_model.user_filter import UserFilter
@@ -78,11 +81,11 @@ def fixture_user_service(user_api, users_api, audit_trail_api, system_api, auth_
7881
audit_trail_api,
7982
system_api,
8083
auth_session,
81-
minimal_retry_config()
84+
minimal_retry_config(),
85+
"manifest.json"
8286
)
8387
return service
8488

85-
8689
@pytest.mark.asyncio
8790
async def test_list_users_by_ids(users_api, user_service):
8891
users_api.v3_users_get = AsyncMock()
@@ -774,3 +777,36 @@ async def test_unsuspend(user_api, user_service):
774777
payload=user_suspension,
775778
session_token="session_token"
776779
)
780+
781+
@pytest.mark.asyncio
782+
async def test_get_manifest(user_api, user_service):
783+
user_api.v1_user_manifest_own_get = AsyncMock()
784+
785+
await user_service.get_manifest()
786+
787+
user_api.v1_user_manifest_own_get.assert_called_with(session_token="session_token")
788+
789+
790+
@pytest.mark.asyncio
791+
async def test_update_manifest_file(user_api, user_service):
792+
expected_manifest_data = {"commands": [
793+
{
794+
"args": [{"name": "[query1]"},{"name": "[query2]"}],
795+
"desc": "Search users based on name, company or job title",
796+
"example": "/search John Smith",
797+
"name": "search"
798+
}
799+
]}
800+
mock_file_content_json = json.dumps(expected_manifest_data)
801+
802+
with patch('pathlib.Path.open', new_callable=mock_open, read_data=mock_file_content_json) as mock_path_open:
803+
user_api.v1_user_manifest_own_post = AsyncMock()
804+
805+
806+
await user_service.update_manifest_from_file()
807+
mock_path_open.assert_called_once()
808+
809+
user_api.v1_user_manifest_own_post.assert_called_once_with(
810+
session_token="session_token",
811+
manifest=ServiceAccountManifest(json.dumps(expected_manifest_data))
812+
)

0 commit comments

Comments
 (0)