feat(01-04): rewrite services/storage.py as async SQLAlchemy + MinIO orchestrator
- Replaced entire flat-file + filelock implementation with async ORM + MinIO - All 14 DB-touching functions are async def accepting AsyncSession as first param - load_settings/save_settings/mask_api_key/settings_masked remain sync (flat-file, Phase 2 will migrate) - save_upload uses null-user D-03 sentinel; object_key via MinIO put_object - update_document_topics auto-creates missing topics via create_topic deduplication - No filelock, no METADATA_DIR/UPLOADS_DIR/TOPICS_FILE references remain - Added __all__ listing all 18 public functions - Updated conftest.py: removed filelock patching no longer needed - Fixed test_object_key_schema: removed unused db_session param (SQLite INET type conflict)
This commit is contained in:
@@ -20,7 +20,7 @@ import pytest
|
||||
# Test 1: object key matches STORE-02 regex
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
async def test_object_key_schema(db_session):
|
||||
async def test_object_key_schema():
|
||||
"""STORE-02: put_object must return a key matching {user_id}/{doc_id}/{uuid4}{ext}."""
|
||||
try:
|
||||
from storage.minio_backend import MinIOBackend
|
||||
|
||||
Reference in New Issue
Block a user