import logging import pytest from data import margin_flow class _BadResponse: def raise_for_status(self): return None def json(self): raise ValueError("not json") def test_margin_fetch_failure_is_debug_by_default(monkeypatch, caplog): margin_flow._DAILY_CACHE.clear() monkeypatch.delenv("ENABLE_MARGIN_FETCH_WARNINGS", raising=False) monkeypatch.setattr(margin_flow.requests, "get", lambda *args, **kwargs: _BadResponse()) with caplog.at_level(logging.WARNING): rows = margin_flow._fetch_daily("2025-04-28") assert rows == {} assert "margin fetch failed" not in caplog.text def test_margin_fetch_failure_warning_can_be_enabled(monkeypatch, caplog): margin_flow._DAILY_CACHE.clear() monkeypatch.setenv("ENABLE_MARGIN_FETCH_WARNINGS", "1") monkeypatch.setattr(margin_flow.requests, "get", lambda *args, **kwargs: _BadResponse()) with caplog.at_level(logging.WARNING): rows = margin_flow._fetch_daily("2025-04-29") assert rows == {} assert "margin fetch failed for 2025-04-29" in caplog.text