Files
FabledCurator/tests/test_platforms_registry.py
T
2026-05-20 18:34:02 -04:00

51 lines
1.3 KiB
Python

import re
import pytest
from backend.app.services.platforms import (
PLATFORMS,
PlatformInfo,
auth_type_for,
known_platform_keys,
to_dict,
)
def test_known_platform_keys_is_gs_six():
assert known_platform_keys() == frozenset({
"patreon", "subscribestar", "hentaifoundry",
"discord", "pixiv", "deviantart",
})
def test_fanbox_not_in_registry():
# Sanity check — FC-3a added 'fanbox' by mistake; it's not a GS platform.
assert "fanbox" not in PLATFORMS
def test_auth_type_for_known_and_unknown():
assert auth_type_for("patreon") == "cookies"
assert auth_type_for("discord") == "token"
assert auth_type_for("nope") is None
def test_each_platform_has_required_fields():
for key, info in PLATFORMS.items():
assert isinstance(info, PlatformInfo)
assert info.key == key
assert info.name
assert info.description
assert info.auth_type in ("cookies", "token")
assert isinstance(info.requires_auth, bool)
re.compile(info.url_pattern) # valid regex
assert info.url_examples
assert isinstance(info.default_config, dict)
def test_to_dict_round_trip():
d = to_dict(PLATFORMS["patreon"])
assert d["key"] == "patreon"
assert d["auth_type"] == "cookies"
assert d["default_config"]["sleep"] == 3.0
assert "url_examples" in d