SPB Git

spb/wp39_uqo

Public
1.6 KB · 43 lines python
1import datetime as dt2import random34import polars as pl5import pytest67from tests.conftest import live8from wp39.api_client import FinDataClient, _redact91011def test_redaction():12    assert "fd_abc.def" not in _redact("token fd_abc.def leaked")131415@live16def test_schema_and_datasets():17    c = FinDataClient()18    s = c.schema_bars()19    assert s["timestamp_convention"] == "bar_open" and s["schema_version"] == 120    ids = {d["id"] for d in c.datasets()}21    assert {"market_bars.stock.1m.raw", "market_bars.etf.1m.raw"} <= ids222324@live25def test_asof_equivalence():26    """Local filter available_at <= as_of on the full extract == API as_of result (metric, period) set."""27    c = FinDataClient()28    full = pl.DataFrame(c.fundamentals("frd:MSFT", period_type="q", limit=20000)["data"])29    full = full.with_columns(pl.col("available_at").str.to_datetime(time_zone="UTC", strict=False))30    for as_of in ("2016-03-01T00:00:00Z", "2019-11-15T00:00:00Z", "2023-08-01T00:00:00Z"):31        api = pl.DataFrame(c.fundamentals("frd:MSFT", as_of=as_of, period_type="q", limit=20000)["data"])32        local = full.filter(pl.col("available_at") <= pl.lit(as_of).str.to_datetime(time_zone="UTC"))33        a = set(zip(api["metric"], api["fiscal_period_end"])); b = set(zip(local["metric"], local["fiscal_period_end"]))34        assert a == b, (as_of, len(a), len(b))353637@live38def test_bars_limits_are_enforced():39    from wp39.api_client import FinDataError40    c = FinDataClient()41    with pytest.raises(FinDataError):42        c.get("/market/bars", symbol="AAPL", interval="1m", start="2024-01-01", end="2024-03-15", limit=10)43
Files · 9c1ba37e427b8a0b6f723e8da9a1de7cbc69fcbe
Menu

Theme