Skip to content

Commit 8f1b576

Browse files
fregataaclaude
andcommitted
test(BA-5797): add repository unit tests for resolve_effective_permissions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 291c723 commit 8f1b576

4 files changed

Lines changed: 894 additions & 3 deletions

File tree

src/ai/backend/manager/data/permission/role.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import uuid
4+
from collections.abc import Mapping
45
from dataclasses import dataclass, field
56
from datetime import datetime
67

@@ -113,7 +114,7 @@ class EffectivePermissionsInput:
113114
class EffectivePermissionsResult:
114115
"""Mapping from entity ID to the set of operations the user is authorized to perform."""
115116

116-
permissions: dict[str, set[OperationType]]
117+
permissions: Mapping[str, set[OperationType]]
117118

118119

119120
@dataclass(frozen=True)

src/ai/backend/manager/repositories/permission_controller/db_source/db_source.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import uuid
3+
from collections import defaultdict
34
from collections.abc import Collection, Iterable, Sequence
45
from dataclasses import dataclass, field
56
from typing import Any, cast
@@ -1164,7 +1165,7 @@ async def resolve_effective_permissions(
11641165

11651166
combined_query = sa.union_all(scope_chain_query, self_scope_query)
11661167

1167-
permissions: dict[str, set[OperationType]] = {eid: set() for eid in data.target_entity_ids}
1168+
permissions: defaultdict[str, set[OperationType]] = defaultdict(set)
11681169
async with self._db.begin_readonly_session_read_committed() as db_session:
11691170
result = await db_session.execute(combined_query)
11701171
for row in result:

src/ai/backend/manager/services/permission_contoller/actions/resolve_effective_permissions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
from collections.abc import Mapping
34
from dataclasses import dataclass, field
45
from typing import override
56
from uuid import UUID
@@ -38,7 +39,7 @@ def operation_type(cls) -> ActionOperationType:
3839
class ResolveEffectivePermissionsActionResult(BaseActionResult):
3940
"""Result containing the effective permissions per entity."""
4041

41-
permissions: dict[str, set[OperationType]] = field(default_factory=dict)
42+
permissions: Mapping[str, set[OperationType]] = field(default_factory=dict)
4243

4344
@override
4445
def entity_id(self) -> str | None:

0 commit comments

Comments
 (0)