mirror of
https://github.com/OpenHands/OpenHands.git
synced 2026-03-22 13:47:19 +08:00
Refactor RoleStore to fully async (#13184)
Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
@@ -710,7 +710,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -759,7 +759,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -807,7 +807,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -922,7 +922,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -959,7 +959,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1011,7 +1011,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -1053,7 +1053,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -1090,7 +1090,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1137,7 +1137,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1195,7 +1195,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1243,7 +1243,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1299,7 +1299,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1351,7 +1351,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1403,7 +1403,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1457,7 +1457,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1510,7 +1510,7 @@ class TestOrgMemberServiceRemoveOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -1620,11 +1620,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
patch(
|
||||
@@ -1681,11 +1681,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
patch(
|
||||
@@ -1740,11 +1740,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
patch(
|
||||
@@ -1803,11 +1803,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
patch(
|
||||
@@ -1934,11 +1934,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
):
|
||||
@@ -1977,11 +1977,11 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role_by_name,
|
||||
patch(
|
||||
@@ -2032,7 +2032,7 @@ class TestOrgMemberServiceUpdateOrgMember:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -2134,7 +2134,7 @@ class TestOrgMemberServiceIsLastOwner:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_members,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -2166,7 +2166,7 @@ class TestOrgMemberServiceIsLastOwner:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_members,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -2194,7 +2194,7 @@ class TestOrgMemberServiceIsLastOwner:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_members,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -2249,7 +2249,7 @@ class TestOrgMemberServiceGetMe:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
@@ -2308,7 +2308,7 @@ class TestOrgMemberServiceGetMe:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
):
|
||||
@@ -2336,7 +2336,7 @@ class TestOrgMemberServiceGetMe:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_member,
|
||||
patch(
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_member_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_role,
|
||||
patch(
|
||||
|
||||
@@ -359,7 +359,7 @@ class TestGetUserOrgRole:
|
||||
return_value=mock_org_member,
|
||||
),
|
||||
patch(
|
||||
'server.auth.authorization.RoleStore.get_role_by_id_async',
|
||||
'server.auth.authorization.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_role,
|
||||
),
|
||||
@@ -411,7 +411,7 @@ class TestGetUserOrgRole:
|
||||
new_callable=AsyncMock,
|
||||
) as mock_get_org_member,
|
||||
patch(
|
||||
'server.auth.authorization.RoleStore.get_role_by_id_async',
|
||||
'server.auth.authorization.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_role,
|
||||
),
|
||||
|
||||
@@ -327,12 +327,12 @@ class TestCreateInvitationsBatch:
|
||||
return_value=mock_inviter_member,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_owner_role,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_member_role,
|
||||
),
|
||||
@@ -383,12 +383,12 @@ class TestCreateInvitationsBatch:
|
||||
return_value=mock_inviter_member,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_owner_role,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_member_role,
|
||||
),
|
||||
@@ -452,12 +452,12 @@ class TestCreateInvitationsBatch:
|
||||
return_value=mock_inviter_member,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_owner_role,
|
||||
),
|
||||
patch(
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name_async',
|
||||
'server.services.org_invitation_service.RoleStore.get_role_by_name',
|
||||
new_callable=AsyncMock,
|
||||
return_value=None, # Invalid role
|
||||
),
|
||||
|
||||
@@ -77,7 +77,7 @@ async def test_validate_name_uniqueness_with_unique_name(async_session_maker):
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker'),
|
||||
patch('storage.role_store.session_maker'),
|
||||
patch('storage.role_store.a_session_maker'),
|
||||
):
|
||||
await OrgService.validate_name_uniqueness(unique_name)
|
||||
|
||||
@@ -132,7 +132,7 @@ async def test_create_org_with_owner_success(
|
||||
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.UserStore.create_default_settings',
|
||||
AsyncMock(return_value=mock_settings),
|
||||
@@ -200,7 +200,7 @@ async def test_create_org_with_owner_duplicate_name(
|
||||
# Act & Assert
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.UserStore.create_default_settings',
|
||||
mock_create_settings,
|
||||
@@ -276,7 +276,7 @@ async def test_create_org_with_owner_database_failure_triggers_cleanup(
|
||||
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.UserStore.create_default_settings',
|
||||
AsyncMock(return_value=mock_settings),
|
||||
@@ -843,7 +843,7 @@ async def test_verify_owner_authorization_success(session_maker, owner_role):
|
||||
return_value=mock_org_member,
|
||||
),
|
||||
patch(
|
||||
'storage.org_service.RoleStore.get_role_by_id_async',
|
||||
'storage.org_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=mock_owner_role,
|
||||
),
|
||||
@@ -950,7 +950,7 @@ async def test_verify_owner_authorization_user_not_owner(session_maker):
|
||||
return_value=mock_org_member,
|
||||
),
|
||||
patch(
|
||||
'storage.org_service.RoleStore.get_role_by_id_async',
|
||||
'storage.org_service.RoleStore.get_role_by_id',
|
||||
new_callable=AsyncMock,
|
||||
return_value=admin_role,
|
||||
),
|
||||
@@ -1136,7 +1136,7 @@ async def test_update_org_with_permissions_success_non_llm_fields(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act
|
||||
result = await OrgService.update_org_with_permissions(
|
||||
@@ -1384,7 +1384,7 @@ async def test_update_org_with_permissions_empty_update(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act
|
||||
result = await OrgService.update_org_with_permissions(
|
||||
@@ -1419,7 +1419,7 @@ async def test_update_org_with_permissions_org_not_found(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act & Assert
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
@@ -1467,7 +1467,7 @@ async def test_update_org_with_permissions_non_member(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act & Assert
|
||||
with pytest.raises(PermissionError) as exc_info:
|
||||
@@ -1525,7 +1525,7 @@ async def test_update_org_with_permissions_llm_fields_insufficient_permission(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act & Assert
|
||||
with pytest.raises(PermissionError) as exc_info:
|
||||
@@ -1585,7 +1585,7 @@ async def test_update_org_with_permissions_database_error(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.OrgStore.update_org',
|
||||
new_callable=AsyncMock,
|
||||
@@ -1640,7 +1640,7 @@ async def test_update_org_with_permissions_duplicate_name_raises_org_name_exists
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.OrgStore.get_org_by_id',
|
||||
new_callable=AsyncMock,
|
||||
@@ -1693,7 +1693,7 @@ async def test_update_org_with_permissions_same_name_allowed(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
patch(
|
||||
'storage.org_service.OrgStore.get_org_by_id',
|
||||
new_callable=AsyncMock,
|
||||
@@ -1835,7 +1835,7 @@ async def test_update_org_with_permissions_only_non_llm_fields(
|
||||
with (
|
||||
patch('storage.org_store.a_session_maker', async_session_maker),
|
||||
patch('storage.org_member_store.a_session_maker', async_session_maker),
|
||||
patch('storage.role_store.session_maker', session_maker),
|
||||
patch('storage.role_store.a_session_maker', async_session_maker),
|
||||
):
|
||||
# Act
|
||||
result = await OrgService.update_org_with_permissions(
|
||||
|
||||
@@ -33,86 +33,9 @@ async def async_session_maker(async_engine):
|
||||
return async_sessionmaker(async_engine, class_=AsyncSession, expire_on_commit=False)
|
||||
|
||||
|
||||
def test_get_role_by_id(session_maker):
|
||||
# Test getting role by ID
|
||||
with session_maker() as session:
|
||||
# Create a test role
|
||||
role = Role(name='admin', rank=1)
|
||||
session.add(role)
|
||||
session.commit()
|
||||
role_id = role.id
|
||||
|
||||
# Test retrieval
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
retrieved_role = RoleStore.get_role_by_id(role_id)
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'admin'
|
||||
|
||||
|
||||
def test_get_role_by_id_not_found(session_maker):
|
||||
# Test getting role by ID when it doesn't exist
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
retrieved_role = RoleStore.get_role_by_id(99999)
|
||||
assert retrieved_role is None
|
||||
|
||||
|
||||
def test_get_role_by_name(session_maker):
|
||||
# Test getting role by name
|
||||
with session_maker() as session:
|
||||
# Create a test role
|
||||
role = Role(name='admin', rank=1)
|
||||
session.add(role)
|
||||
session.commit()
|
||||
role_id = role.id
|
||||
|
||||
# Test retrieval
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
retrieved_role = RoleStore.get_role_by_name('admin')
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'admin'
|
||||
|
||||
|
||||
def test_get_role_by_name_not_found(session_maker):
|
||||
# Test getting role by name when it doesn't exist
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
retrieved_role = RoleStore.get_role_by_name('nonexistent')
|
||||
assert retrieved_role is None
|
||||
|
||||
|
||||
def test_list_roles(session_maker):
|
||||
# Test listing all roles
|
||||
with session_maker() as session:
|
||||
# Create test roles
|
||||
role1 = Role(name='admin', rank=1)
|
||||
role2 = Role(name='user', rank=2)
|
||||
session.add_all([role1, role2])
|
||||
session.commit()
|
||||
|
||||
# Test listing
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
roles = RoleStore.list_roles()
|
||||
assert len(roles) >= 2
|
||||
role_names = [role.name for role in roles]
|
||||
assert 'admin' in role_names
|
||||
assert 'user' in role_names
|
||||
|
||||
|
||||
def test_create_role(session_maker):
|
||||
# Test creating a new role
|
||||
with patch('storage.role_store.session_maker', session_maker):
|
||||
role = RoleStore.create_role(name='moderator', rank=2)
|
||||
|
||||
assert role is not None
|
||||
assert role.name == 'moderator'
|
||||
assert role.rank == 2
|
||||
assert role.id is not None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_name_async_with_session(async_session_maker):
|
||||
"""Test getting role by name asynchronously with an explicit session."""
|
||||
async def test_get_role_by_id_with_session(async_session_maker):
|
||||
"""Test getting role by ID with an explicit session."""
|
||||
# Create a test role
|
||||
async with async_session_maker() as session:
|
||||
role = Role(name='admin', rank=1)
|
||||
@@ -123,9 +46,53 @@ async def test_get_role_by_name_async_with_session(async_session_maker):
|
||||
|
||||
# Test retrieval with explicit session
|
||||
async with async_session_maker() as session:
|
||||
retrieved_role = await RoleStore.get_role_by_name_async(
|
||||
'admin', session=session
|
||||
)
|
||||
retrieved_role = await RoleStore.get_role_by_id(role_id, session=session)
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'admin'
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_id_without_session(async_session_maker):
|
||||
"""Test getting role by ID using internal session maker."""
|
||||
# Create a test role
|
||||
async with async_session_maker() as session:
|
||||
role = Role(name='admin', rank=1)
|
||||
session.add(role)
|
||||
await session.commit()
|
||||
await session.refresh(role)
|
||||
role_id = role.id
|
||||
|
||||
# Test retrieval without explicit session (using patched a_session_maker)
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
retrieved_role = await RoleStore.get_role_by_id(role_id)
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'admin'
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_id_not_found(async_session_maker):
|
||||
"""Test getting role by ID when it doesn't exist."""
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
retrieved_role = await RoleStore.get_role_by_id(99999)
|
||||
assert retrieved_role is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_name_with_session(async_session_maker):
|
||||
"""Test getting role by name with an explicit session."""
|
||||
# Create a test role
|
||||
async with async_session_maker() as session:
|
||||
role = Role(name='admin', rank=1)
|
||||
session.add(role)
|
||||
await session.commit()
|
||||
await session.refresh(role)
|
||||
role_id = role.id
|
||||
|
||||
# Test retrieval with explicit session
|
||||
async with async_session_maker() as session:
|
||||
retrieved_role = await RoleStore.get_role_by_name('admin', session=session)
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'admin'
|
||||
@@ -133,8 +100,8 @@ async def test_get_role_by_name_async_with_session(async_session_maker):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_name_async_without_session(async_session_maker):
|
||||
"""Test getting role by name asynchronously using internal session maker."""
|
||||
async def test_get_role_by_name_without_session(async_session_maker):
|
||||
"""Test getting role by name using internal session maker."""
|
||||
# Create a test role
|
||||
async with async_session_maker() as session:
|
||||
role = Role(name='editor', rank=2)
|
||||
@@ -145,7 +112,7 @@ async def test_get_role_by_name_async_without_session(async_session_maker):
|
||||
|
||||
# Test retrieval without explicit session (using patched a_session_maker)
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
retrieved_role = await RoleStore.get_role_by_name_async('editor')
|
||||
retrieved_role = await RoleStore.get_role_by_name('editor')
|
||||
assert retrieved_role is not None
|
||||
assert retrieved_role.id == role_id
|
||||
assert retrieved_role.name == 'editor'
|
||||
@@ -153,18 +120,81 @@ async def test_get_role_by_name_async_without_session(async_session_maker):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_name_async_not_found_with_session(async_session_maker):
|
||||
async def test_get_role_by_name_not_found_with_session(async_session_maker):
|
||||
"""Test getting role by name when it doesn't exist (with explicit session)."""
|
||||
async with async_session_maker() as session:
|
||||
retrieved_role = await RoleStore.get_role_by_name_async(
|
||||
retrieved_role = await RoleStore.get_role_by_name(
|
||||
'nonexistent', session=session
|
||||
)
|
||||
assert retrieved_role is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_role_by_name_async_not_found_without_session(async_session_maker):
|
||||
async def test_get_role_by_name_not_found_without_session(async_session_maker):
|
||||
"""Test getting role by name when it doesn't exist (without explicit session)."""
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
retrieved_role = await RoleStore.get_role_by_name_async('nonexistent')
|
||||
retrieved_role = await RoleStore.get_role_by_name('nonexistent')
|
||||
assert retrieved_role is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_list_roles_with_session(async_session_maker):
|
||||
"""Test listing all roles with an explicit session."""
|
||||
# Create test roles
|
||||
async with async_session_maker() as session:
|
||||
role1 = Role(name='admin', rank=1)
|
||||
role2 = Role(name='user', rank=2)
|
||||
session.add_all([role1, role2])
|
||||
await session.commit()
|
||||
|
||||
# Test listing with explicit session
|
||||
async with async_session_maker() as session:
|
||||
roles = await RoleStore.list_roles(session=session)
|
||||
assert len(roles) >= 2
|
||||
role_names = [role.name for role in roles]
|
||||
assert 'admin' in role_names
|
||||
assert 'user' in role_names
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_list_roles_without_session(async_session_maker):
|
||||
"""Test listing all roles using internal session maker."""
|
||||
# Create test roles
|
||||
async with async_session_maker() as session:
|
||||
role1 = Role(name='admin', rank=1)
|
||||
role2 = Role(name='user', rank=2)
|
||||
session.add_all([role1, role2])
|
||||
await session.commit()
|
||||
|
||||
# Test listing without explicit session (using patched a_session_maker)
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
roles = await RoleStore.list_roles()
|
||||
assert len(roles) >= 2
|
||||
role_names = [role.name for role in roles]
|
||||
assert 'admin' in role_names
|
||||
assert 'user' in role_names
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_role_with_session(async_session_maker):
|
||||
"""Test creating a new role with an explicit session."""
|
||||
async with async_session_maker() as session:
|
||||
role = await RoleStore.create_role(name='moderator', rank=2, session=session)
|
||||
await session.commit()
|
||||
|
||||
assert role is not None
|
||||
assert role.name == 'moderator'
|
||||
assert role.rank == 2
|
||||
assert role.id is not None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_role_without_session(async_session_maker):
|
||||
"""Test creating a new role using internal session maker."""
|
||||
with patch('storage.role_store.a_session_maker', async_session_maker):
|
||||
role = await RoleStore.create_role(name='moderator', rank=2)
|
||||
|
||||
assert role is not None
|
||||
assert role.name == 'moderator'
|
||||
assert role.rank == 2
|
||||
assert role.id is not None
|
||||
|
||||
Reference in New Issue
Block a user