import re import pytest pytestmark = pytest.mark.integration @pytest.mark.asyncio async def test_platforms_returns_gs_six(client): resp = await client.get("/api/platforms") assert resp.status_code == 200 body = await resp.get_json() platforms = body["platforms"] assert set(platforms.keys()) == { "patreon", "subscribestar", "hentaifoundry", "discord", "pixiv", "deviantart", } assert "fanbox" not in platforms @pytest.mark.asyncio async def test_platforms_record_shape(client): body = await (await client.get("/api/platforms")).get_json() patreon = body["platforms"]["patreon"] for key in ( "key", "name", "description", "auth_type", "requires_auth", "url_pattern", "url_examples", "default_config", "notes", ): assert key in patreon assert patreon["auth_type"] == "cookies" re.compile(patreon["url_pattern"]) assert patreon["default_config"]["sleep"] == 3.0 @pytest.mark.asyncio async def test_platform_auth_types_match_gs(client): body = await (await client.get("/api/platforms")).get_json() assert body["platforms"]["discord"]["auth_type"] == "token" assert body["platforms"]["pixiv"]["auth_type"] == "token" assert body["platforms"]["patreon"]["auth_type"] == "cookies"