import pytest pytestmark = pytest.mark.integration @pytest.mark.asyncio async def test_get_includes_downloader_fields(client): resp = await client.get("/api/settings/import") assert resp.status_code == 200 body = await resp.get_json() assert body["download_rate_limit_seconds"] == 3.0 assert body["download_validate_files"] is True @pytest.mark.asyncio async def test_patch_download_rate_limit(client): resp = await client.patch( "/api/settings/import", json={"download_rate_limit_seconds": 1.5} ) assert resp.status_code == 200 assert (await resp.get_json())["download_rate_limit_seconds"] == 1.5 @pytest.mark.asyncio async def test_patch_download_validate_files_false(client): resp = await client.patch( "/api/settings/import", json={"download_validate_files": False} ) assert resp.status_code == 200 assert (await resp.get_json())["download_validate_files"] is False @pytest.mark.asyncio async def test_patch_rejects_negative_rate_limit(client): resp = await client.patch( "/api/settings/import", json={"download_rate_limit_seconds": -1.0} ) assert resp.status_code == 400 @pytest.mark.asyncio async def test_patch_rejects_non_bool_validate(client): resp = await client.patch( "/api/settings/import", json={"download_validate_files": "yes"} ) assert resp.status_code == 400 @pytest.mark.asyncio async def test_extdl_host_toggles_default_on_and_patch(client): body = await (await client.get("/api/settings/import")).get_json() assert body["extdl_mega_enabled"] is True assert body["extdl_pixeldrain_enabled"] is True resp = await client.patch( "/api/settings/import", json={"extdl_mega_enabled": False} ) assert resp.status_code == 200 assert (await resp.get_json())["extdl_mega_enabled"] is False @pytest.mark.asyncio async def test_extdl_toggle_rejects_non_bool(client): resp = await client.patch( "/api/settings/import", json={"extdl_gdrive_enabled": "nope"} ) assert resp.status_code == 400