Files
OpenBB/openbb_platform/extensions/crypto/integration/test_crypto_python.py
Danglewood 3fd14d7068 [V5] Refactor Shared Pass Through Router Extensions For Hatchling (#7524)
* refactor shared pass-through routers for hatchling and ruff + ty

* add publish workflows
2026-06-22 14:36:21 -07:00

95 lines
2.3 KiB
Python

"""Test crypto extension."""
import pytest
from openbb_core.app.model.obbject import OBBject
@pytest.fixture(scope="session")
def obb(pytestconfig):
"""Fixture to setup obb."""
if pytestconfig.getoption("markexpr") != "not integration":
import openbb
return openbb.obb
pytest.skip("Integration tests are not enabled.")
@pytest.mark.parametrize(
"params",
[
({"query": "asd"}),
({"query": "btc", "provider": "fmp"}),
],
)
@pytest.mark.integration
def test_crypto_search(params, obb):
"""Test the crypto search endpoint."""
params = {p: v for p, v in params.items() if v}
result = obb.crypto.search(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0
@pytest.mark.parametrize(
"params",
[
(
{
"interval": "1d",
"provider": "fmp",
"symbol": "BTCUSD",
"start_date": "2023-01-01",
"end_date": "2023-01-02",
}
),
(
{
"interval": "1h",
"provider": "fmp",
"symbol": "BTCUSD,ETHUSD",
"start_date": None,
"end_date": None,
}
),
(
{
"interval": "1d",
"provider": "yfinance",
"symbol": "BTCUSD",
"start_date": "2023-01-01",
"end_date": "2023-01-04",
}
),
(
{
"provider": "tiingo",
"interval": "1d",
"exchanges": None,
"symbol": "BTCUSD",
"start_date": "2023-01-01",
"end_date": "2023-06-06",
}
),
(
{
"provider": "tiingo",
"interval": "1h",
"exchanges": ["POLONIEX", "GDAX"],
"symbol": "BTCUSD",
"start_date": "2023-01-01",
"end_date": "2023-01-02",
}
),
],
)
@pytest.mark.integration
def test_crypto_price_historical(params, obb):
"""Test crypto price historical."""
result = obb.crypto.price.historical(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0