47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
import tempfile
|
|
from pathlib import Path
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from media_library_viewer_api.main import app
|
|
from media_library_viewer_api.services.settings_store import SettingsStore
|
|
|
|
|
|
def test_post_backup_report():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
db_path = Path(tmpdir) / "test_settings.sqlite"
|
|
store = SettingsStore(db_path)
|
|
store.init_schema()
|
|
|
|
# Monkey-patch the global store for this test
|
|
import media_library_viewer_api.auth as auth_module
|
|
from media_library_viewer_api.auth import get_api_key
|
|
from media_library_viewer_api.services import settings_store
|
|
|
|
original_store = settings_store._store
|
|
settings_store._store = store
|
|
auth_module._API_KEY = None
|
|
|
|
try:
|
|
client = TestClient(app)
|
|
api_key = get_api_key()
|
|
|
|
response = client.post(
|
|
"/api/backups/report",
|
|
headers={"Authorization": f"Bearer {api_key}"},
|
|
json={
|
|
"name": "test-backup",
|
|
"started_at": "2026-05-11T02:00:00Z",
|
|
"status": "success",
|
|
"ended_at": "2026-05-11T02:15:00Z",
|
|
"duration_ms": 900000,
|
|
"bytes_transferred": 1024,
|
|
},
|
|
)
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
assert data["status"] == "success"
|
|
finally:
|
|
settings_store._store = original_store
|
|
auth_module._API_KEY = None
|