Skip to content

Commit cb75df1

Browse files
fregataaclaude
andcommitted
fix(BA-3696): Align DeleteUserAction references with reverted signature
- Remove user_uuid kwarg from DeleteUserAction calls (field was removed in revert) - Revert delete_user processor from SingleEntityActionProcessor to ActionProcessor (DeleteUserAction no longer extends BaseSingleEntityAction) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9ac2149 commit cb75df1

5 files changed

Lines changed: 8 additions & 10 deletions

File tree

src/ai/backend/manager/api/rest/user/handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ async def delete_user(
208208
)
209209

210210
await self._user.delete_user.wait_for_complete(
211-
DeleteUserAction(user_uuid=body.parsed.user_id, email=get_result.user.email)
211+
DeleteUserAction(email=get_result.user.email)
212212
)
213213

214214
resp = DeleteUserResponse(success=True)

src/ai/backend/manager/services/user/processors.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class UserProcessors(AbstractProcessorPackage):
7272
# Single entity actions with RBAC
7373
get_user: SingleEntityActionProcessor[GetUserAction, GetUserActionResult]
7474
modify_user: SingleEntityActionProcessor[ModifyUserAction, ModifyUserActionResult]
75-
delete_user: SingleEntityActionProcessor[DeleteUserAction, DeleteUserActionResult]
75+
delete_user: ActionProcessor[DeleteUserAction, DeleteUserActionResult]
7676
purge_user: SingleEntityActionProcessor[PurgeUserAction, PurgeUserActionResult]
7777
# Bulk actions without RBAC (special handling)
7878
bulk_create_users: ActionProcessor[BulkCreateUserAction, BulkCreateUserActionResult]
@@ -109,9 +109,7 @@ def __init__(
109109
self.modify_user = SingleEntityActionProcessor(
110110
user_service.modify_user, action_monitors, validators=[validators.rbac.single_entity]
111111
)
112-
self.delete_user = SingleEntityActionProcessor(
113-
user_service.delete_user, action_monitors, validators=[validators.rbac.single_entity]
114-
)
112+
self.delete_user = ActionProcessor(user_service.delete_user, action_monitors)
115113
self.purge_user = SingleEntityActionProcessor(
116114
user_service.purge_user, action_monitors, validators=[validators.rbac.single_entity]
117115
)

tests/unit/manager/services/test_users.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ async def test_delete_existing_user_returns_success(
358358
"""Delete existing user should return success result."""
359359
mock_user_repository.soft_delete_user_validated = AsyncMock(return_value=None)
360360

361-
action = DeleteUserAction(user_uuid=uuid.uuid4(), email="test@example.com")
361+
action = DeleteUserAction(email="test@example.com")
362362

363363
result = await service.delete_user(action)
364364

@@ -377,7 +377,7 @@ async def test_delete_nonexistent_user_raises_error(
377377
side_effect=UserNotFound("User not found")
378378
)
379379

380-
action = DeleteUserAction(user_uuid=uuid.uuid4(), email="nonexistent@example.com")
380+
action = DeleteUserAction(email="nonexistent@example.com")
381381

382382
with pytest.raises(UserNotFound):
383383
await service.delete_user(action)

tests/unit/manager/services/user/test_user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ async def test_delete_user_action_structure(
189189
"""Test that DeleteUserAction works as expected."""
190190
mock_dependencies["user_repository"].soft_delete_user_validated = AsyncMock()
191191

192-
action = DeleteUserAction(user_uuid=uuid.uuid4(), email="user@example.com")
192+
action = DeleteUserAction(email="user@example.com")
193193
await user_service.delete_user(action)
194194

195195
mock_dependencies["user_repository"].soft_delete_user_validated.assert_called_once_with(

tests/unit/manager/services/user/test_user_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@ async def test_soft_delete_succeeds(
743743
"""Email soft delete calls repository."""
744744
mock_user_repository.soft_delete_user_validated = AsyncMock(return_value=None)
745745

746-
action = DeleteUserAction(user_uuid=uuid.uuid4(), email="user@example.com")
746+
action = DeleteUserAction(email="user@example.com")
747747
result = await service.delete_user(action)
748748

749749
assert result is not None
@@ -761,7 +761,7 @@ async def test_nonexistent_email_raises_not_found(
761761
side_effect=UserNotFound("User not found")
762762
)
763763

764-
action = DeleteUserAction(user_uuid=uuid.uuid4(), email="missing@example.com")
764+
action = DeleteUserAction(email="missing@example.com")
765765

766766
with pytest.raises(UserNotFound):
767767
await service.delete_user(action)

0 commit comments

Comments
 (0)