Files
chatbot_v3/tests/integration/minio/test_storage.py

40 lines
1.4 KiB
Python

import uuid
import pytest
from anyio import CapacityLimiter
from src.application.files.storage_keys import source_file_object_key
from src.config import MinioSettings
from src.infrastructure.minio.client import create_client
from src.infrastructure.minio.storage import MinioObjectStorage
pytestmark = [pytest.mark.integration, pytest.mark.minio, pytest.mark.asyncio]
async def test_put_object_stores_bytes_under_server_derived_key(
minio_settings: MinioSettings,
) -> None:
client = create_client(minio_settings)
storage = MinioObjectStorage(client, bucket=minio_settings.bucket, limiter=CapacityLimiter(2))
key = source_file_object_key(uuid.uuid4(), uuid.uuid4())
data = b"tenant-scoped, id-addressed bytes"
await storage.put_object(key=key, data=data, content_type="text/csv")
stored = client.get_object(minio_settings.bucket, key).read()
assert stored == data
async def test_put_object_overwrites_existing_object_at_same_key(
minio_settings: MinioSettings,
) -> None:
client = create_client(minio_settings)
storage = MinioObjectStorage(client, bucket=minio_settings.bucket, limiter=CapacityLimiter(2))
key = source_file_object_key(uuid.uuid4(), uuid.uuid4())
await storage.put_object(key=key, data=b"first", content_type="text/csv")
await storage.put_object(key=key, data=b"second", content_type="text/csv")
stored = client.get_object(minio_settings.bucket, key).read()
assert stored == b"second"