"""The one test allowed to touch the real BGG API. Read-only, skipped by default; run with: uv run pytest --run-live -m live Needs BGG_USERNAME and BGG_API_TOKEN in the environment (register at https://boardgamegeek.com/applications). """ from __future__ import annotations import os from pathlib import Path import pytest from bggpipe.bgg_client import BGGClient from bggpipe.config import load_config @pytest.mark.live def test_fetch_own_collection_read_only(tmp_path: Path) -> None: cfg = load_config() if not cfg.bgg_username: pytest.skip("set BGG_USERNAME to run the live smoke test") if not os.environ.get("BGG_API_TOKEN"): pytest.skip("set BGG_API_TOKEN to run the live smoke test") # fresh cache dir so this genuinely exercises the live API + 202 queue client = BGGClient(cache_dir=tmp_path / "cache") items = client.collection_full(cfg.bgg_username) assert isinstance(items, list) assert all(item.own for item in items)