"""LIVE 合约解析。"""

from app.live.symbols import resolve_perp_inst_id


class _FakeDb:
    def __init__(self, row=None):
        self._row = row

    def fetchone(self, sql, args=()):
        return self._row


def test_resolve_perp_prefers_group(monkeypatch) -> None:
    import app.live.symbols as sym

    class S:
        perp_inst_id = "ETH-USDT-SWAP"

    monkeypatch.setattr(sym, "live_settings", lambda: S())
    db = _FakeDb({"perp_inst_id": "ETHUSDT"})
    assert resolve_perp_inst_id(db, group_id="g1") == "ETHUSDT"


def test_resolve_perp_fallback_runtime(monkeypatch) -> None:
    import app.live.symbols as sym

    class S:
        perp_inst_id = "ETHUSDT"

    monkeypatch.setattr(sym, "live_settings", lambda: S())
    db = _FakeDb(None)
    assert resolve_perp_inst_id(db) == "ETHUSDT"
