31 lines
972 B
Python
31 lines
972 B
Python
from __future__ import annotations
|
|
|
|
import uuid
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_batch_delete_assets_awaits_global_admin_guard(client, auth_headers, monkeypatch):
|
|
guard_calls: list[str] = []
|
|
deleted_asset_ids: list[str] = []
|
|
|
|
async def _guard(user):
|
|
guard_calls.append(str(user.id))
|
|
return user
|
|
|
|
async def _delete_media_asset(_db, asset_id):
|
|
deleted_asset_ids.append(str(asset_id))
|
|
return True
|
|
|
|
monkeypatch.setattr("app.utils.auth.require_global_admin", _guard)
|
|
monkeypatch.setattr("app.domains.media.service.delete_media_asset", _delete_media_asset)
|
|
|
|
asset_ids = [str(uuid.uuid4()), str(uuid.uuid4())]
|
|
response = await client.post("/api/media/batch-delete", json=asset_ids, headers=auth_headers)
|
|
|
|
assert response.status_code == 200, response.text
|
|
assert len(guard_calls) == 1
|
|
assert deleted_asset_ids == asset_ids
|
|
assert response.json() == {"deleted": 2, "requested": 2}
|