fix(fc3b): replace FC-3a KNOWN_PLATFORMS w/ registry; drop /api/sources/platforms
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,11 +24,6 @@ def _bad(error: str, *, status: int = 400, detail: str | None = None, **extra):
|
||||
return jsonify(body), status
|
||||
|
||||
|
||||
@sources_bp.route("/platforms", methods=["GET"])
|
||||
async def platforms():
|
||||
return jsonify({"platforms": sorted(KNOWN_PLATFORMS)})
|
||||
|
||||
|
||||
@sources_bp.route("", methods=["GET"])
|
||||
async def list_sources():
|
||||
artist_id_raw = request.args.get("artist_id")
|
||||
|
||||
@@ -9,11 +9,11 @@ from sqlalchemy.exc import IntegrityError
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from ..models import Artist, Source
|
||||
from .platforms import known_platform_keys
|
||||
|
||||
# App-level allowlist (frozenset to make accidental mutation loud).
|
||||
KNOWN_PLATFORMS: frozenset[str] = frozenset({
|
||||
"patreon", "fanbox", "subscribestar", "pixiv", "deviantart",
|
||||
})
|
||||
# Re-exported for back-compat with FC-3a; the registry in
|
||||
# services/platforms.py is the single source of truth.
|
||||
KNOWN_PLATFORMS = known_platform_keys()
|
||||
|
||||
|
||||
# --- Errors -----------------------------------------------------------------
|
||||
|
||||
@@ -25,14 +25,6 @@ async def artist(db):
|
||||
return a
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_platforms_endpoint(client):
|
||||
resp = await client.get("/api/sources/platforms")
|
||||
assert resp.status_code == 200
|
||||
body = await resp.get_json()
|
||||
assert "patreon" in body["platforms"]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_create_list_get_delete(client, artist):
|
||||
create = await client.post("/api/sources", json={
|
||||
|
||||
@@ -23,8 +23,12 @@ async def _artist(db, name="Alice"):
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_known_platforms_contains_starter_set(db):
|
||||
assert {"patreon", "fanbox", "subscribestar", "pixiv", "deviantart"} <= KNOWN_PLATFORMS
|
||||
async def test_known_platforms_is_gs_six(db):
|
||||
assert KNOWN_PLATFORMS == frozenset({
|
||||
"patreon", "subscribestar", "hentaifoundry",
|
||||
"discord", "pixiv", "deviantart",
|
||||
})
|
||||
assert "fanbox" not in KNOWN_PLATFORMS
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
Reference in New Issue
Block a user