import pytest from sqlalchemy import inspect, select from backend.app.models import ImportSettings pytestmark = pytest.mark.integration @pytest.mark.asyncio async def test_download_event_has_metadata(db): cols = await db.run_sync( lambda s: {c["name"]: c for c in inspect(s.bind).get_columns("download_event")} ) assert "metadata" in cols assert cols["metadata"]["nullable"] is False @pytest.mark.asyncio async def test_import_settings_has_downloader_fields(db): cols = await db.run_sync( lambda s: {c["name"]: c for c in inspect(s.bind).get_columns("import_settings")} ) assert "download_rate_limit_seconds" in cols assert "download_validate_files" in cols @pytest.mark.asyncio async def test_import_settings_defaults(db): row = (await db.execute(select(ImportSettings).where(ImportSettings.id == 1))).scalar_one() assert row.download_rate_limit_seconds == 3.0 assert row.download_validate_files is True