Introduce integration test modularity (#5865)

* Introduce integration test modularity

* Fix Python 3.9 error

* Add TODO

* Update generators

* Handle endpoints that only feature one provider that is not installed

* Fix failing unit test
This commit is contained in:
Igor Radovanovic
2023-12-06 20:39:39 +01:00
committed by GitHub
parent 1a6c540cf6
commit 3d2a9cdb9a
33 changed files with 626 additions and 493 deletions

View File

@@ -3,6 +3,7 @@ import json
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -43,7 +44,7 @@ def get_equity_data():
return data["stocks_data"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -74,7 +75,7 @@ def test_chart_equity_price_historical(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "limit": 100, "chart": True})],
)
@@ -97,7 +98,7 @@ def test_chart_equity_fundamental_multiples(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -132,7 +133,7 @@ def test_chart_technical_adx(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[({"data": "", "index": "date", "length": "30", "scalar": "110", "chart": True})],
)
@@ -156,7 +157,7 @@ def test_chart_technical_aroon(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -191,7 +192,7 @@ def test_chart_technical_ema(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -226,7 +227,7 @@ def test_chart_technical_hma(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -262,7 +263,7 @@ def test_chart_technical_macd(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -298,7 +299,7 @@ def test_chart_technical_rsi(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -333,7 +334,7 @@ def test_chart_technical_sma(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -368,7 +369,7 @@ def test_chart_technical_wma(params, headers):
assert list(chart.keys()) == ["content", "format"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,6 +1,7 @@
"""Test charting extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_charting.core.openbb_figure import OpenBBFigure
from openbb_core.app.model.obbject import OBBject
@@ -36,7 +37,7 @@ def get_equity_data():
return data["stocks_data"]
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -59,7 +60,7 @@ def test_chart_equity_price_historical(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "limit": 100, "chart": "True"}),
@@ -78,7 +79,7 @@ def test_chart_equity_fundamental_multiples(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -108,7 +109,7 @@ def test_chart_technical_adx(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -137,7 +138,7 @@ def test_chart_technical_aroon(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -167,7 +168,7 @@ def test_chart_technical_ema(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -197,7 +198,7 @@ def test_chart_technical_hma(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -228,7 +229,7 @@ def test_chart_technical_macd(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -259,7 +260,7 @@ def test_chart_technical_rsi(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -289,7 +290,7 @@ def test_chart_technical_sma(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -319,7 +320,7 @@ def test_chart_technical_wma(params, obb):
assert isinstance(result.chart.fig, OpenBBFigure)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -3,6 +3,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "asd"}),
@@ -36,7 +37,7 @@ def test_crypto_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,6 +1,7 @@
"""Test crypto extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
# pylint: disable=redefined-outer-name
@@ -15,7 +16,7 @@ def obb(pytestconfig): # pylint: disable=inconsistent-return-statements
return openbb.obb
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "asd"}),
@@ -32,7 +33,7 @@ def test_crypto_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -3,6 +3,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -56,7 +57,7 @@ def test_currency_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -154,9 +155,9 @@ def test_currency_price_historical(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({})],
[({"provider": "ecb"})],
)
@pytest.mark.integration
def test_currency_reference_rates(params, headers):

View File

@@ -1,6 +1,7 @@
"""Test currency extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
# pylint: disable=redefined-outer-name
@@ -17,7 +18,7 @@ def obb(pytestconfig):
return openbb.obb
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -52,7 +53,7 @@ def test_currency_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -147,9 +148,9 @@ def test_currency_price_historical(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({})],
[({"provider": "ecb"})],
)
@pytest.mark.integration
def test_currency_reference_rates(params, obb):

View File

@@ -4,6 +4,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -19,7 +20,7 @@ def headers():
return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"provider": "intrinio", "symbol": "AAPL", "date": "2023-01-25"}),
@@ -37,7 +38,7 @@ def test_derivatives_options_chains(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -56,7 +57,7 @@ def test_derivatives_options_unusual(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -95,7 +96,7 @@ def test_derivatives_futures_historical(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"provider": "cboe", "symbol": "VX", "date": "2023-01-25"}),

View File

@@ -1,6 +1,7 @@
"""Python interface integration tests for the derivatives extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
# pylint: disable=too-many-lines,redefined-outer-name
@@ -16,7 +17,7 @@ def obb(pytestconfig):
return openbb.obb
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -32,7 +33,7 @@ def test_derivatives_options_chains(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -48,7 +49,7 @@ def test_derivatives_options_unusual(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -83,7 +84,7 @@ def test_derivatives_futures_historical(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "VX", "date": "2023-01-25", "provider": "cboe"}),

View File

@@ -3,6 +3,7 @@ import random
from typing import Literal
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
from openbb_econometrics.utils import mock_multi_index_data
@@ -58,7 +59,7 @@ def get_data(menu: Literal["equity", "crypto"]):
return funcs[menu]()
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": ""}, "equity"),
@@ -77,7 +78,7 @@ def test_econometrics_correlation_matrix(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -102,7 +103,7 @@ def test_econometrics_ols_regression(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -126,7 +127,7 @@ def test_econometrics_ols_regression_summary(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -150,7 +151,7 @@ def test_econometrics_autocorrelation(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -184,7 +185,7 @@ def test_econometrics_residual_autocorrelation(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -215,7 +216,7 @@ def test_econometrics_cointegration(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -250,7 +251,7 @@ def test_econometrics_causality(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "column": "close", "regression": "c"}, "equity"),
@@ -271,7 +272,7 @@ def test_econometrics_unit_root(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},
@@ -290,7 +291,7 @@ def test_econometrics_panel_random_effects(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},
@@ -309,7 +310,7 @@ def test_econometrics_panel_between(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},
@@ -328,7 +329,7 @@ def test_econometrics_panel_pooled(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},
@@ -347,7 +348,7 @@ def test_econometrics_panel_fixed(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},
@@ -366,7 +367,7 @@ def test_econometrics_panel_first_difference(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
{"data": "", "y_column": "income", "x_columns": ["age"]},

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -57,7 +58,7 @@ def test_economy_calendar(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -95,7 +96,7 @@ def test_economy_cpi(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "fmp"})],
)
@@ -110,7 +111,7 @@ def test_economy_risk_premium(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -145,7 +146,7 @@ def test_economy_gdp_forecast(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -178,7 +179,7 @@ def test_economy_gdp_nominal(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -211,7 +212,7 @@ def test_economy_gdp_real(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -251,7 +252,7 @@ def test_economy_balance_of_payments(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -309,7 +310,7 @@ def test_economy_fred_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,6 +1,7 @@
"""Test economy extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -17,7 +18,7 @@ def obb(pytestconfig): # pylint: disable=inconsistent-return-statements
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06", "provider": "fmp"}),
@@ -51,7 +52,7 @@ def test_economy_calendar(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -74,10 +75,10 @@ def test_economy_cpi(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({}),
({"provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -88,7 +89,7 @@ def test_economy_risk_premium(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -121,7 +122,7 @@ def test_economy_gdp_forecast(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"units": "usd", "start_date": "2021-01-01", "end_date": "2023-06-06"}),
@@ -146,7 +147,7 @@ def test_economy_gdp_nominal(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"units": "yoy", "start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -171,7 +172,7 @@ def test_economy_gdp_real(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -210,7 +211,7 @@ def test_economy_balance_of_payments(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -267,7 +268,7 @@ def test_economy_fred_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -4,6 +4,7 @@ from datetime import time
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -19,7 +20,7 @@ def headers():
return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12, "provider": "fmp"}),
@@ -82,9 +83,9 @@ def test_equity_fundamental_balance(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "limit": 10})],
[({"symbol": "AAPL", "limit": 10, "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_balance_growth(params, headers):
@@ -97,7 +98,7 @@ def test_equity_fundamental_balance_growth(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-05", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -115,7 +116,7 @@ def test_equity_calendar_dividend(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-05", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -132,7 +133,7 @@ def test_equity_calendar_splits(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-09", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -150,7 +151,7 @@ def test_equity_calendar_earnings(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12, "provider": "fmp"}),
@@ -213,9 +214,9 @@ def test_equity_fundamental_cash(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "limit": 10})],
[({"symbol": "AAPL", "limit": 10, "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_cash_growth(params, headers):
@@ -228,9 +229,9 @@ def test_equity_fundamental_cash_growth(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_management_compensation(params, headers):
@@ -243,9 +244,9 @@ def test_equity_fundamental_management_compensation(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_historical_splits(params, headers):
@@ -258,7 +259,7 @@ def test_equity_fundamental_historical_splits(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "provider": "fmp"}),
@@ -282,9 +283,9 @@ def test_equity_fundamental_dividends(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_employee_count(params, headers):
@@ -297,7 +298,7 @@ def test_equity_fundamental_employee_count(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "period": "annual", "limit": 30})],
)
@@ -312,7 +313,7 @@ def test_equity_estimates_historical(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12, "provider": "fmp"}),
@@ -375,9 +376,9 @@ def test_equity_fundamental_income(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "limit": 10, "period": "annual"})],
[({"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_income_growth(params, headers):
@@ -390,7 +391,7 @@ def test_equity_fundamental_income_growth(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -425,7 +426,7 @@ def test_equity_ownership_insider_trading(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -456,7 +457,7 @@ def test_equity_ownership_institutional(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -490,7 +491,7 @@ def test_equity_calendar_ipo(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -516,7 +517,7 @@ def test_equity_fundamental_metrics(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -531,7 +532,7 @@ def test_equity_fundamental_management(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -546,9 +547,9 @@ def test_equity_fundamental_overview(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "date": "2023-01-01", "page": 1})],
[({"symbol": "AAPL", "date": "2023-01-01", "page": 1, "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_ownership_major_holders(params, headers):
@@ -561,9 +562,9 @@ def test_equity_ownership_major_holders(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_estimates_price_target(params, headers):
@@ -576,7 +577,7 @@ def test_equity_estimates_price_target(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -591,7 +592,7 @@ def test_equity_estimates_consensus(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "period": "annual", "limit": 12})],
)
@@ -606,9 +607,9 @@ def test_equity_fundamental_ratios(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "period": "annual", "structure": "flat"})],
[({"symbol": "AAPL", "period": "annual", "structure": "flat", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_revenue_per_geography(params, headers):
@@ -621,9 +622,9 @@ def test_equity_fundamental_revenue_per_geography(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "period": "annual", "structure": "flat"})],
[({"symbol": "AAPL", "period": "annual", "structure": "flat", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_revenue_per_segment(params, headers):
@@ -638,7 +639,7 @@ def test_equity_fundamental_revenue_per_segment(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "form_type": "1", "limit": 100, "provider": "fmp"}),
@@ -686,7 +687,7 @@ def test_equity_fundamental_filings(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "provider": "fmp"}),
@@ -704,7 +705,7 @@ def test_equity_ownership_share_statistics(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "year": 2023})],
)
@@ -719,7 +720,7 @@ def test_equity_fundamental_transcript(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -734,7 +735,7 @@ def test_equity_compare_peers(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -920,7 +921,7 @@ def test_equity_price_historical(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "provider": "fmp"})],
)
@@ -935,7 +936,7 @@ def test_equity_fundamental_multiples(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "ebit", "limit": 100, "provider": "intrinio"}),
@@ -952,7 +953,7 @@ def test_equity_fundamental_search_attributes(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -981,7 +982,7 @@ def test_equity_fundamental_historical_attributes(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1011,7 +1012,7 @@ def test_equity_fundamental_latest_attributes(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "AAPl", "is_symbol": True, "provider": "cboe"}),
@@ -1029,7 +1030,7 @@ def test_equity_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1067,7 +1068,7 @@ def test_equity_screener(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"source": "iex", "provider": "intrinio", "symbol": "AAPL"}),
@@ -1085,7 +1086,7 @@ def test_equity_price_quote(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "provider": "cboe"}),
@@ -1103,7 +1104,7 @@ def test_equity_profile(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "provider": "yfinance"})],
)
@@ -1118,7 +1119,7 @@ def test_equity_discovery_gainers(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "provider": "yfinance"})],
)
@@ -1133,7 +1134,7 @@ def test_equity_discovery_losers(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "provider": "yfinance"})],
)
@@ -1148,7 +1149,7 @@ def test_equity_discovery_active(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "provider": "fmp"})],
)
@@ -1163,7 +1164,7 @@ def test_equity_price_performance(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "provider": "yfinance"})],
)
@@ -1178,9 +1179,9 @@ def test_equity_discovery_undervalued_large_caps(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_undervalued_growth(params, headers):
@@ -1193,9 +1194,9 @@ def test_equity_discovery_undervalued_growth(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_aggressive_small_caps(params, headers):
@@ -1210,7 +1211,7 @@ def test_equity_discovery_aggressive_small_caps(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "provider": "yfinance"})],
)
@@ -1225,7 +1226,7 @@ def test_equity_discovery_growth_tech(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"limit": 10, "provider": "nasdaq"})],
)
@@ -1240,7 +1241,7 @@ def test_equity_discovery_top_retail(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "seeking_alpha"})],
)
@@ -1257,7 +1258,7 @@ def test_equity_discovery_upcoming_release_days(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1293,7 +1294,7 @@ def test_equity_discovery_filings(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -1311,9 +1312,9 @@ def test_equity_shorts_fails_to_deliver(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "stockgrid"})],
)
@pytest.mark.integration
def test_equity_shorts_short_volume(params, headers):
@@ -1326,9 +1327,9 @@ def test_equity_shorts_short_volume(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "finra"})],
)
@pytest.mark.integration
def test_equity_shorts_short_interest(params, headers):
@@ -1341,7 +1342,7 @@ def test_equity_shorts_short_interest(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1369,7 +1370,7 @@ def test_equity_price_nbbo(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -1392,7 +1393,7 @@ def test_equity_darkpool_otc(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"provider": "fmp", "market": "EURONEXT"}),
@@ -1410,7 +1411,7 @@ def test_equity_market_snapshots(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "limit": 5, "provider": "fmp"}),
@@ -1427,7 +1428,7 @@ def test_equity_fundamental_historical_eps(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "tiingo", "symbol": "AAPL"})],
)

View File

@@ -2,6 +2,7 @@
from datetime import time
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
# pylint: disable=too-many-lines,redefined-outer-name
@@ -17,7 +18,7 @@ def obb(pytestconfig):
return openbb.obb
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12}),
@@ -77,10 +78,10 @@ def test_equity_fundamental_balance(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "limit": 10}),
({"symbol": "AAPL", "limit": 10, "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -91,7 +92,7 @@ def test_equity_fundamental_balance_growth(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-05", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -106,7 +107,7 @@ def test_equity_calendar_dividend(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-05", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -120,7 +121,7 @@ def test_equity_calendar_splits(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-11-09", "end_date": "2023-11-10", "provider": "fmp"}),
@@ -135,7 +136,7 @@ def test_equity_calendar_earnings(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12}),
@@ -195,10 +196,10 @@ def test_equity_fundamental_cash(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "limit": 10}),
({"symbol": "AAPL", "limit": 10, "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -209,10 +210,10 @@ def test_equity_fundamental_cash_growth(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
({"symbol": "AAPL", "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -223,10 +224,10 @@ def test_equity_fundamental_management_compensation(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
({"symbol": "AAPL", "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -237,7 +238,7 @@ def test_equity_fundamental_historical_splits(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -259,10 +260,10 @@ def test_equity_fundamental_dividends(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
({"symbol": "AAPL", "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -273,7 +274,7 @@ def test_equity_fundamental_employee_count(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 30}),
@@ -287,7 +288,7 @@ def test_equity_estimates_historical(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12}),
@@ -347,9 +348,9 @@ def test_equity_fundamental_income(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "limit": 10, "period": "annual"})],
[({"symbol": "AAPL", "limit": 10, "period": "annual", "provider": "fmp"})],
)
@pytest.mark.integration
def test_equity_fundamental_income_growth(params, obb):
@@ -359,7 +360,7 @@ def test_equity_fundamental_income_growth(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -397,7 +398,7 @@ def test_equity_ownership_insider_trading(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -425,7 +426,7 @@ def test_equity_ownership_institutional(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -456,7 +457,7 @@ def test_equity_calendar_ipo(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 100}),
@@ -483,7 +484,7 @@ def test_equity_fundamental_metrics(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -497,7 +498,7 @@ def test_equity_fundamental_management(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -511,10 +512,10 @@ def test_equity_fundamental_overview(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "date": "2023-01-01", "page": 1}),
({"symbol": "AAPL", "date": "2023-01-01", "page": 1, "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -525,10 +526,10 @@ def test_equity_ownership_major_holders(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
({"symbol": "AAPL", "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -539,7 +540,7 @@ def test_equity_estimates_price_target(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -551,7 +552,7 @@ def test_equity_estimates_consensus(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "limit": 12}),
@@ -565,10 +566,17 @@ def test_equity_fundamental_ratios(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "structure": "flat"}),
(
{
"symbol": "AAPL",
"period": "annual",
"structure": "flat",
"provider": "fmp",
}
),
],
)
@pytest.mark.integration
@@ -579,10 +587,17 @@ def test_equity_fundamental_revenue_per_geography(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "period": "annual", "structure": "flat"}),
(
{
"symbol": "AAPL",
"period": "annual",
"structure": "flat",
"provider": "fmp",
}
),
],
)
@pytest.mark.integration
@@ -593,7 +608,7 @@ def test_equity_fundamental_revenue_per_segment(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "form_type": "1", "limit": 100, "provider": "fmp"}),
@@ -638,7 +653,7 @@ def test_equity_fundamental_filings(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -654,7 +669,7 @@ def test_equity_ownership_share_statistics(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "year": 2023}),
@@ -668,7 +683,7 @@ def test_equity_fundamental_transcript(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -682,7 +697,7 @@ def test_equity_compare_peers(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -864,7 +879,7 @@ def test_equity_price_historical(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "provider": "fmp"}),
@@ -878,7 +893,7 @@ def test_equity_fundamental_multiples(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "ebit", "limit": 100, "provider": "intrinio"}),
@@ -892,7 +907,7 @@ def test_equity_fundamental_search_attributes(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -918,7 +933,7 @@ def test_equity_fundamental_historical_attributes(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -954,7 +969,7 @@ def test_equity_fundamental_latest_attributes(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "AAPL", "is_symbol": True, "provider": "cboe"}),
@@ -969,7 +984,7 @@ def test_equity_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1004,7 +1019,7 @@ def test_equity_screener(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -1020,7 +1035,7 @@ def test_equity_price_quote(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "provider": "cboe"}),
@@ -1038,7 +1053,7 @@ def test_equity_profile(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
)
@@ -1052,7 +1067,7 @@ def test_equity_discovery_gainers(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
)
@@ -1066,7 +1081,7 @@ def test_equity_discovery_losers(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
)
@@ -1080,7 +1095,7 @@ def test_equity_discovery_active(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
)
@@ -1094,9 +1109,9 @@ def test_equity_price_performance(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_undervalued_large_caps(params, obb):
@@ -1108,9 +1123,9 @@ def test_equity_discovery_undervalued_large_caps(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_undervalued_growth(params, obb):
@@ -1122,9 +1137,9 @@ def test_equity_discovery_undervalued_growth(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_aggressive_small_caps(params, obb):
@@ -1136,9 +1151,9 @@ def test_equity_discovery_aggressive_small_caps(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc"})],
[({"sort": "desc", "provider": "yfinance"})],
)
@pytest.mark.integration
def test_equity_discovery_growth_tech(params, obb):
@@ -1150,9 +1165,9 @@ def test_equity_discovery_growth_tech(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"limit": 10})],
[({"limit": 10, "provider": "nasdaq"})],
)
@pytest.mark.integration
def test_equity_discovery_top_retail(params, obb):
@@ -1164,9 +1179,9 @@ def test_equity_discovery_top_retail(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({})],
[({"provider": "seeking_alpha"})],
)
@pytest.mark.integration
def test_equity_discovery_upcoming_release_days(params, obb):
@@ -1178,7 +1193,7 @@ def test_equity_discovery_upcoming_release_days(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1216,7 +1231,7 @@ def test_equity_discovery_filings(params, obb):
assert result.results is not None
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -1233,9 +1248,9 @@ def test_equity_shorts_fails_to_deliver(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL"})],
[({"symbol": "AAPL", "provider": "stockgrid"})],
)
@pytest.mark.integration
def test_equity_shorts_short_volume(params, obb):
@@ -1247,7 +1262,7 @@ def test_equity_shorts_short_volume(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "AAPL", "provider": "finra"})],
)
@@ -1261,7 +1276,7 @@ def test_equity_shorts_short_interest(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -1286,7 +1301,7 @@ def test_equity_price_nbbo(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL"}),
@@ -1303,7 +1318,7 @@ def test_equity_darkpool_otc(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"provider": "fmp", "market": "EURONEXT"}),
@@ -1318,7 +1333,7 @@ def test_equity_market_snapshots(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "AAPL", "limit": 5, "provider": "fmp"}),
@@ -1334,7 +1349,7 @@ def test_equity_fundamental_historical_eps(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "tiingo", "symbol": "AAPL"})],
)

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "", "provider": "fmp"}),
@@ -35,7 +36,7 @@ def test_etf_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -67,7 +68,7 @@ def test_etf_historical(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "IOO", "provider": "fmp"}),
@@ -85,7 +86,7 @@ def test_etf_info(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "IOO", "provider": "fmp"}),
@@ -103,7 +104,7 @@ def test_etf_sectors(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "QQQ", "cik": None, "provider": "fmp"}),
@@ -120,7 +121,7 @@ def test_etf_holdings_date(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -152,7 +153,7 @@ def test_etf_holdings(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "SPY,VOO,QQQ,IWM,IWN,GOVT,JNK", "provider": "fmp"})],
)
@@ -167,7 +168,7 @@ def test_etf_price_performance(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "IOO"})],
)
@@ -182,7 +183,7 @@ def test_etf_countries(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -197,7 +198,7 @@ def test_etf_discovery_gainers(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -212,7 +213,7 @@ def test_etf_discovery_losers(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -227,7 +228,7 @@ def test_etf_discovery_active(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "qqq", "provider": "fmp"}),

View File

@@ -1,5 +1,6 @@
"""Test etf extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -16,7 +17,7 @@ def obb(pytestconfig): # pylint: disable=inconsistent-return-statements
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": None, "provider": "fmp"}),
@@ -32,7 +33,7 @@ def test_etf_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -63,7 +64,7 @@ def test_etf_historical(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "IOO", "provider": "fmp"}),
@@ -80,7 +81,7 @@ def test_etf_info(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "IOO", "provider": "fmp"}),
@@ -97,7 +98,7 @@ def test_etf_sectors(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "QQQ", "cik": None, "provider": "fmp"}),
@@ -113,7 +114,7 @@ def test_etf_holdings_date(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -144,7 +145,7 @@ def test_etf_holdings(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "SPY,VOO,QQQ,IWM,IWN,GOVT,JNK", "provider": "fmp"})],
)
@@ -158,7 +159,7 @@ def test_etf_price_performance(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "IOO"})],
)
@@ -172,7 +173,7 @@ def test_etf_countries(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -186,7 +187,7 @@ def test_etf_discovery_gainers(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -200,7 +201,7 @@ def test_etf_discovery_losers(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -214,7 +215,7 @@ def test_etf_discovery_active(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "qqq", "provider": "fmp"}),
@@ -231,7 +232,7 @@ def test_etf_holdings_performance(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -245,7 +246,7 @@ def test_etf_discovery_gainers2(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)
@@ -259,7 +260,7 @@ def test_etf_discovery_losers2(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"sort": "desc", "limit": 10})],
)

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -17,9 +18,9 @@ def headers():
return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06"})],
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "provider": "fmp"})],
)
@pytest.mark.integration
def test_fixedincome_government_treasury_rates(params, headers):
@@ -34,9 +35,9 @@ def test_fixedincome_government_treasury_rates(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"date": "2023-01-01", "inflation_adjusted": True})],
[({"date": "2023-01-01", "inflation_adjusted": True, "provider": "fred"})],
)
@pytest.mark.integration
def test_fixedincome_government_us_yield_curve(params, headers):
@@ -51,7 +52,7 @@ def test_fixedincome_government_us_yield_curve(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -76,7 +77,7 @@ def test_fixedincome_sofr(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -101,7 +102,7 @@ def test_fixedincome_rate_estr(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -126,7 +127,7 @@ def test_fixedincome_rate_sonia(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -151,7 +152,7 @@ def test_fixedincome_rate_ameribor(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -176,7 +177,7 @@ def test_fixedincome_rate_effr(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({}), ({"long_run": True, "provider": "fred"})],
)
@@ -191,7 +192,7 @@ def test_fixedincome_rate_effr_forecast(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06"})],
)
@@ -206,7 +207,7 @@ def test_fixedincome_rate_iorb(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -231,7 +232,7 @@ def test_fixedincome_rate_dpcredit(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -254,7 +255,7 @@ def test_fixedincome_rate_ecb(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06", "index_type": "yield"}),
@@ -283,7 +284,7 @@ def test_fixedincome_corporate_ice_bofa(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "index_type": "aaa"})],
)
@@ -298,7 +299,7 @@ def test_fixedincome_corporate_moody(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -308,6 +309,7 @@ def test_fixedincome_corporate_moody(params, headers):
"maturity": "30d",
"category": "financial",
"grade": "aa",
"provider": "fred",
}
)
],
@@ -325,7 +327,7 @@ def test_fixedincome_corporate_commercial_paper(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -334,6 +336,7 @@ def test_fixedincome_corporate_commercial_paper(params, headers):
"end_date": "2023-06-06",
"maturity": [10.0],
"category": ["spot_rate"],
"provider": "fred",
}
)
],
@@ -349,7 +352,7 @@ def test_fixedincome_corporate_spot_rates(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"date": "2023-01-01", "yield_curve": "spot"})],
)
@@ -364,7 +367,7 @@ def test_fixedincome_corporate_hqm(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "3m"})],
)
@@ -379,9 +382,18 @@ def test_fixedincome_spreads_tmc(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "10y"})],
[
(
{
"start_date": "2023-01-01",
"end_date": "2023-06-06",
"maturity": "10y",
"provider": "fred",
}
)
],
)
@pytest.mark.integration
def test_fixedincome_spreads_tmc_effr(params, headers):
@@ -394,9 +406,18 @@ def test_fixedincome_spreads_tmc_effr(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "3m"})],
[
(
{
"start_date": "2023-01-01",
"end_date": "2023-06-06",
"maturity": "3m",
"provider": "fred",
}
)
],
)
@pytest.mark.integration
def test_fixedincome_spreads_treasury_effr(params, headers):
@@ -409,7 +430,7 @@ def test_fixedincome_spreads_treasury_effr(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"date": "2023-01-01", "yield_curve_type": "spot_rate"}),
@@ -436,7 +457,7 @@ def test_fixedincome_government_eu_yield_curve(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,5 +1,6 @@
"""Test fixed income extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
# pylint: disable=redefined-outer-name
@@ -16,10 +17,10 @@ def obb(pytestconfig):
return openbb.obb
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
({"start_date": "2023-01-01", "end_date": "2023-06-06", "provider": "fmp"}),
],
)
@pytest.mark.integration
@@ -30,10 +31,10 @@ def test_fixedincome_government_treasury_rates(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"date": "2023-01-01", "inflation_adjusted": True}),
({"date": "2023-01-01", "inflation_adjusted": True, "provider": "fred"}),
],
)
@pytest.mark.integration
@@ -44,7 +45,7 @@ def test_fixedincome_government_us_yield_curve(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -66,7 +67,7 @@ def test_fixedincome_sofr(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -88,7 +89,7 @@ def test_fixedincome_rate_estr(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -110,7 +111,7 @@ def test_fixedincome_rate_sonia(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -132,7 +133,7 @@ def test_fixedincome_rate_ameribor(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -154,7 +155,7 @@ def test_fixedincome_rate_effr(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({}),
@@ -169,7 +170,7 @@ def test_fixedincome_rate_effr_forecast(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -183,7 +184,7 @@ def test_fixedincome_rate_iorb(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06"}),
@@ -207,7 +208,7 @@ def test_fixedincome_rate_dpcredit(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -229,7 +230,7 @@ def test_fixedincome_rate_ecb(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"start_date": "2023-01-01", "end_date": "2023-06-06", "index_type": "yield"}),
@@ -257,7 +258,7 @@ def test_fixedincome_corporate_ice_bofa(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "index_type": "aaa"})],
)
@@ -271,7 +272,7 @@ def test_fixedincome_corporate_moody(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -281,6 +282,7 @@ def test_fixedincome_corporate_moody(params, obb):
"maturity": "30d",
"category": "financial",
"grade": "aa",
"provider": "fred",
}
)
],
@@ -295,7 +297,7 @@ def test_fixedincome_corporate_commercial_paper(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -304,6 +306,7 @@ def test_fixedincome_corporate_commercial_paper(params, obb):
"end_date": "2023-06-06",
"maturity": [10.0],
"category": ["spot_rate"],
"provider": "fred",
}
)
],
@@ -318,7 +321,7 @@ def test_fixedincome_corporate_spot_rates(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"date": "2023-01-01", "yield_curve": "spot"})],
)
@@ -332,7 +335,7 @@ def test_fixedincome_corporate_hqm(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "3m"})],
)
@@ -346,9 +349,18 @@ def test_fixedincome_spreads_tmc(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "10y"})],
[
(
{
"start_date": "2023-01-01",
"end_date": "2023-06-06",
"maturity": "10y",
"provider": "fred",
}
)
],
)
@pytest.mark.integration
def test_fixedincome_spreads_tmc_effr(params, obb):
@@ -360,9 +372,18 @@ def test_fixedincome_spreads_tmc_effr(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"start_date": "2023-01-01", "end_date": "2023-06-06", "maturity": "3m"})],
[
(
{
"start_date": "2023-01-01",
"end_date": "2023-06-06",
"maturity": "3m",
"provider": "fred",
}
)
],
)
@pytest.mark.integration
def test_fixedincome_spreads_treasury_effr(params, obb):
@@ -374,7 +395,7 @@ def test_fixedincome_spreads_treasury_effr(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"date": "2023-01-01", "yield_curve_type": "spot_rate"}),
@@ -398,7 +419,7 @@ def test_fixedincome_government_eu_yield_curve(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[({"index": "dowjones", "provider": "fmp"})],
)
@@ -33,7 +34,7 @@ def test_index_constituents(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -145,7 +146,7 @@ def test_index_market(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -187,7 +188,7 @@ def test_index_european(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"symbol": "BUKBUS", "provider": "cboe"})],
)
@@ -202,7 +203,7 @@ def test_index_european_constituents(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"europe": True, "provider": "cboe"}),
@@ -221,7 +222,7 @@ def test_index_available(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "D", "is_symbol": True, "provider": "cboe"}),
@@ -239,7 +240,7 @@ def test_index_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "cboe", "region": "US"})],
)
@@ -254,7 +255,7 @@ def test_index_snapshots(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,6 +1,7 @@
"""Test economy extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -17,7 +18,7 @@ def obb(pytestconfig): # pylint: disable=inconsistent-return-statements
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"index": "dowjones"}),
@@ -31,7 +32,7 @@ def test_index_constituents(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -139,7 +140,7 @@ def test_index_market(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -177,10 +178,10 @@ def test_index_european(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "BUKBUS"}),
({"symbol": "BUKBUS", "provider": "cboe"}),
],
)
@pytest.mark.integration
@@ -191,7 +192,7 @@ def test_index_european_constituents(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({}),
@@ -208,7 +209,7 @@ def test_index_available(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "D", "is_symbol": True}),
@@ -223,7 +224,7 @@ def test_index_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"region": "US"}),
@@ -237,7 +238,7 @@ def test_index_snapshots(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -82,7 +83,7 @@ def test_news_world(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbols": "AAPL", "limit": 20, "provider": "benzinga"}),

View File

@@ -1,6 +1,7 @@
"""Test news extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -17,7 +18,7 @@ def obb(pytestconfig): # pylint: disable=inconsistent-return-statements
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
(
@@ -77,7 +78,7 @@ def test_news_world(params, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -5,6 +5,7 @@ from typing import Literal
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -64,7 +65,7 @@ def get_data(menu: Literal["equity", "crypto"]):
return funcs[menu]()
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close"}, "equity"),
@@ -83,7 +84,7 @@ def test_quantitative_normality(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "high"}, "equity"),
@@ -102,7 +103,7 @@ def test_quantitative_capm(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -137,7 +138,7 @@ def test_quantitative_omega_ratio(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "window": "5"}, "equity"),
@@ -156,7 +157,7 @@ def test_quantitative_kurtosis(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -191,7 +192,7 @@ def test_quantitative_unitroot_test(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "rfr": "", "window": ""}, "equity"),
@@ -210,7 +211,7 @@ def test_quantitative_sharpe_ratio(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -247,7 +248,7 @@ def test_quantitative_sortino_ratio(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "window": "220"}, "equity"),
@@ -265,7 +266,7 @@ def test_quantitative_skewness(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -300,7 +301,7 @@ def test_quantitative_quantile(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close"}, "equity"),

View File

@@ -3,6 +3,7 @@ import random
from typing import Literal
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -57,7 +58,7 @@ def get_data(menu: Literal["equity", "crypto"]):
return funcs[menu]()
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close"}, "equity"),
@@ -74,7 +75,7 @@ def test_quantitative_normality(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close"}, "equity"),
@@ -91,7 +92,7 @@ def test_quantitative_capm(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -124,7 +125,7 @@ def test_quantitative_omega_ratio(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "window": "5"}, "equity"),
@@ -142,7 +143,7 @@ def test_quantitative_kurtosis(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -175,7 +176,7 @@ def test_quantitative_unitroot_test(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "rfr": "", "window": ""}, "equity"),
@@ -192,7 +193,7 @@ def test_quantitative_sharpe_ratio(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -227,7 +228,7 @@ def test_quantitative_sortino_ratio(params, data_type, obb):
assert isinstance(result, OBBject)
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close", "window": "220"}, "equity"),
@@ -244,7 +245,7 @@ def test_quantitative_skewness(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -278,7 +279,7 @@ def test_quantitative_quantile(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "target": "close"}, "equity"),

View File

@@ -2,6 +2,7 @@ import base64
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -18,7 +19,7 @@ def headers():
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "TSLA", "provider": "sec"}),
@@ -36,7 +37,7 @@ def test_regulators_sec_cik_map(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "berkshire hathaway", "provider": "sec"}),
@@ -53,7 +54,7 @@ def test_regulators_sec_institutions_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "2022", "provider": "sec", "url": ""}),
@@ -77,7 +78,7 @@ def test_regulators_sec_schema_files(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "0000909832", "provider": "sec"}),
@@ -95,7 +96,7 @@ def test_regulators_sec_symbol_map(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "sec"})],
)
@@ -110,7 +111,7 @@ def test_regulators_sec_rss_litigation(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[({"query": "oil", "use_cache": False, "provider": "sec"})],
)
@@ -125,7 +126,7 @@ def test_regulators_sec_sic_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "grain", "provider": "nasdaq"}),
@@ -142,7 +143,7 @@ def test_regulators_cftc_cot_search(params, headers):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -1,5 +1,6 @@
"""Test Regulators extension."""
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -17,7 +18,7 @@ def obb(pytestconfig):
# pylint: disable=redefined-outer-name
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"symbol": "TSLA", "provider": "sec"}),
@@ -33,7 +34,7 @@ def test_regulators_sec_cik_map(params, obb):
assert isinstance(result.results.cik, str)
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "berkshire hathaway", "provider": "sec"}),
@@ -47,7 +48,7 @@ def test_regulators_sec_institutions_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "2022", "provider": "sec", "url": None}),
@@ -68,7 +69,7 @@ def test_regulators_sec_schema_files(params, obb):
assert len(result.results.files) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "0000909832", "provider": "sec"}),
@@ -84,7 +85,7 @@ def test_regulators_sec_symbol_map(params, obb):
assert isinstance(result.results.symbol, str)
@pytest.mark.parametrize(
@parametrize(
"params",
[({"provider": "sec"})],
)
@@ -96,7 +97,7 @@ def test_regulators_sec_rss_litigation(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[({"query": "oil", "use_cache": False, "provider": "sec"})],
)
@@ -108,7 +109,7 @@ def test_regulators_sec_sic_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
({"query": "grain", "provider": "nasdaq"}),
@@ -122,7 +123,7 @@ def test_regulators_cftc_cot_search(params, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params",
[
(

View File

@@ -5,6 +5,7 @@ from typing import Literal
import pytest
import requests
from extensions.tests.conftest import parametrize
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
@@ -66,7 +67,7 @@ def get_crypto_data():
return data["crypto_data"]
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -106,7 +107,7 @@ def test_technical_atr(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -146,7 +147,7 @@ def test_technical_fib(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "offset": ""}, "equity"),
@@ -166,7 +167,7 @@ def test_technical_obv(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "signal": ""}, "equity"),
@@ -186,7 +187,7 @@ def test_technical_fisher(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -224,7 +225,7 @@ def test_technical_adosc(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -266,7 +267,7 @@ def test_technical_bbands(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -304,7 +305,7 @@ def test_technical_zlma(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "scalar": ""}, "equity"),
@@ -332,7 +333,7 @@ def test_technical_aroon(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -370,7 +371,7 @@ def test_technical_sma(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -410,7 +411,7 @@ def test_technical_demark(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "anchor": "", "offset": ""}, "equity"),
@@ -430,7 +431,7 @@ def test_technical_vwap(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -470,7 +471,7 @@ def test_technical_macd(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -508,7 +509,7 @@ def test_technical_hma(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -546,7 +547,7 @@ def test_technical_donchian(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -588,7 +589,7 @@ def test_technical_ichimoku(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "date", "target": "close", "period": "10"}, "equity"),
@@ -616,7 +617,7 @@ def test_technical_clenow(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "offset": ""}, "equity"),
@@ -636,7 +637,7 @@ def test_technical_ad(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -674,7 +675,7 @@ def test_technical_adx(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -712,7 +713,7 @@ def test_technical_wma(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "scalar": ""}, "equity"),
@@ -740,7 +741,7 @@ def test_technical_cci(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -780,7 +781,7 @@ def test_technical_rsi(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -818,7 +819,7 @@ def test_technical_stoch(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -858,7 +859,7 @@ def test_technical_kc(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": ""}, "equity"),
@@ -878,7 +879,7 @@ def test_technical_cg(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -920,7 +921,7 @@ def test_technical_cones(params, data_type):
assert result.status_code == 200
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(

View File

@@ -3,6 +3,7 @@ import random
from typing import Literal
import pytest
from extensions.tests.conftest import parametrize
from openbb_core.app.model.obbject import OBBject
@@ -57,7 +58,7 @@ def get_data(menu: Literal["stocks", "crypto"]):
return funcs[menu]()
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -95,7 +96,7 @@ def test_technical_atr(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -133,7 +134,7 @@ def test_technical_fib(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "offset": ""}, "stocks"),
@@ -151,7 +152,7 @@ def test_technical_obv(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "signal": ""}, "stocks"),
@@ -169,7 +170,7 @@ def test_technical_fisher(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -205,7 +206,7 @@ def test_technical_adosc(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -245,7 +246,7 @@ def test_technical_bbands(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -281,7 +282,7 @@ def test_technical_zlma(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "scalar": ""}, "stocks"),
@@ -307,7 +308,7 @@ def test_technical_aroon(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -343,7 +344,7 @@ def test_technical_sma(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -381,7 +382,7 @@ def test_technical_demark(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "anchor": "", "offset": ""}, "stocks"),
@@ -399,7 +400,7 @@ def test_technical_vwap(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -437,7 +438,7 @@ def test_technical_macd(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -473,7 +474,7 @@ def test_technical_hma(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -509,7 +510,7 @@ def test_technical_donchian(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -549,7 +550,7 @@ def test_technical_ichimoku(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "target": "", "period": ""}, "stocks"),
@@ -575,7 +576,7 @@ def test_technical_clenow(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -611,7 +612,7 @@ def test_technical_adx(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "offset": ""}, "stocks"),
@@ -629,7 +630,7 @@ def test_technical_ad(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -665,7 +666,7 @@ def test_technical_wma(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": "", "scalar": ""}, "stocks"),
@@ -691,7 +692,7 @@ def test_technical_cci(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -729,7 +730,7 @@ def test_technical_rsi(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -765,7 +766,7 @@ def test_technical_stoch(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -803,7 +804,7 @@ def test_technical_kc(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
({"data": "", "index": "", "length": ""}, "stocks"),
@@ -821,7 +822,7 @@ def test_technical_cg(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(
@@ -861,7 +862,7 @@ def test_technical_cones(params, data_type, obb):
assert len(result.results) > 0
@pytest.mark.parametrize(
@parametrize(
"params, data_type",
[
(

View File

@@ -0,0 +1,37 @@
"""Custom pytest configuration for the extensions."""
from typing import Dict, List
import pytest
from openbb_core.app.router import CommandMap
from extensions.tests.utils.helpers import list_openbb_extensions
cm = CommandMap()
commands = list(cm.map.keys())
def parametrize(argnames: str, argvalues: List[Dict], **kwargs):
"""Custom parametrize decorator that filters test cases based on the environment."""
extensions, providers = list_openbb_extensions()
def decorator(function):
"""Patch the pytest.mark.parametrize decorator."""
filtered_argvalues: List[Dict] = []
extension_name = function.__name__.split("_")[1]
function_name = "/" + "/".join(function.__name__.split("_")[1:])
if extension_name in extensions:
for args in argvalues:
if "provider" in args and args["provider"] in providers:
filtered_argvalues.append(args)
elif "provider" not in args and function_name in commands:
# Run the standard test case
filtered_argvalues.append(args)
return pytest.mark.parametrize(argnames, filtered_argvalues, **kwargs)(
function
)
return pytest.mark.skip(function)
return decorator

View File

@@ -1,6 +1,7 @@
"""Test utils."""
import pytest
from integration.utils.helpers import check_docstring_examples
from extensions.tests.utils.helpers import check_docstring_examples
@pytest.mark.integration

View File

@@ -1,13 +1,95 @@
import base64
"""Test helpers."""
import doctest
import glob
import importlib
import logging
import os
from importlib.metadata import entry_points
from typing import Dict, List, Set, Tuple
from openbb_core.env import Env
logging.basicConfig(level=logging.INFO)
def get_auth() -> str:
"""Returns the basic auth header."""
def get_packages_info() -> Dict[str, str]:
"""Get the paths and names of all the static packages."""
paths_and_names: Dict[str, str] = {}
package_paths = glob.glob("openbb_platform/openbb/package/*.py")
for path in package_paths:
name = os.path.basename(path).split(".")[0]
paths_and_names[path] = name
userpass = f"{Env().API_USERNAME}:{Env().API_PASSWORD}"
userpass_bytes = userpass.encode("ascii")
base64_bytes = base64.b64encode(userpass_bytes)
paths_and_names = {
path: name for path, name in paths_and_names.items() if not name.startswith("_")
}
return paths_and_names
return f"Basic {base64_bytes.decode('ascii')}"
def execute_docstring_examples(
module_name: str, file_path: str, verbose: bool = False
) -> List[str]:
"""Execute the docstring examples of a module."""
errors = []
module_name = f"openbb.package.{module_name}"
module = importlib.import_module(module_name)
examples = doctest.DocTestFinder().find(module)
def execute_script(script, source_info):
try:
local_namespace = {}
exec( # noqa: S102 pylint: disable=exec-used
script, local_namespace, local_namespace
)
if verbose:
logging.info("Executed a test from %s", source_info)
except Exception as e:
errors.append(
f"An exception occurred while executing script from {source_info} - {str(e)}"
)
for example in examples:
script_lines = []
for test in example.examples:
script_lines.append(test.source)
script_content = "".join(script_lines)
execute_script(script_content, file_path)
return errors
def check_docstring_examples() -> List[str]:
"""Test that the docstring examples execute without errors."""
errors = []
paths_and_names = get_packages_info()
for path, name in paths_and_names.items():
result = execute_docstring_examples(name, path, verbose=True)
if result:
errors.extend(result)
return errors
def list_openbb_extensions() -> Tuple[Set[str], Set[str]]:
"""
Lists installed openbb extensions and providers.
Returns
-------
Tuple[Set[str], Set[str]]
First element: set of installed core extensions.
Second element: set of installed provider extensions.
"""
core_extensions = set()
provider_extensions = set()
entry_points_dict = entry_points()
for entry_point in entry_points_dict["openbb_core_extension"]:
core_extensions.add(f"{entry_point.name}")
for entry_point in entry_points_dict["openbb_provider_extension"]:
provider_extensions.add(f"{entry_point.name}")
return core_extensions, provider_extensions

View File

@@ -34,6 +34,7 @@ import pytest
import requests
from openbb_core.env import Env
from openbb_core.provider.utils.helpers import get_querystring
from extensions.tests.conftest import parametrize
@pytest.fixture(scope="session")
@@ -78,7 +79,7 @@ def write_test_w_template(
"""
template = f"""
@pytest.mark.parametrize(
@parametrize(
"params",
[{params_str}],
)
@@ -140,7 +141,7 @@ def write_commands_integration_tests(
[{k: "" for k in get_post_flat_params(hints)}]
if http_method == "post"
else get_test_params(
model_name=cm_models[route],
model_name=cm_models[route], # type: ignore
provider_interface_map=provider_interface_map,
)
)

View File

@@ -19,7 +19,7 @@ from openbb_core.app.router import CommandMap
from pydantic.fields import FieldInfo
from pydantic_core import PydanticUndefined
TEST_TEMPLATE = """\n\n@pytest.mark.parametrize(
TEST_TEMPLATE = """\n\n@parametrize(
"params",
[
{params}
@@ -61,6 +61,7 @@ def create_integration_test_files(extensions: List[PosixPath]) -> None:
f'''"""Test {extension_name} extension."""
import pytest
from openbb_core.app.model.obbject import OBBject
from extensions.tests.conftest import parametrize
@pytest.fixture(scope="session")
@@ -254,13 +255,13 @@ def add_test_commands_to_file( # pylint: disable=W0102
if extension_name in extensions_data_processing:
write_test_data_processing(
test_file=test_file,
commands_map=commands_map,
commands_map=commands_map, # type: ignore
extension_name=extension_name,
)
else:
write_test(
test_file=test_file,
commands_model=commands_model,
commands_model=commands_model, # type: ignore
extension_name=extension_name,
provider_interface_map=provider_interface_map,
)
@@ -290,7 +291,7 @@ def write_charting_extension_integration_tests():
test_file=test_file,
params_list=[{"chart": "True"}],
full_command=func.replace("_", "."),
test_name=f"chart_{func}",
test_name=f"chart_{func}", # TODO: fix the name of the charting library
extra=extra,
)

View File

@@ -1,70 +0,0 @@
"""Test helpers."""
import doctest
import glob
import importlib
import logging
import os
from typing import Dict, List
logging.basicConfig(level=logging.INFO)
def get_packages_info() -> Dict[str, str]:
"""Get the paths and names of all the static packages."""
paths_and_names: Dict[str, str] = {}
package_paths = glob.glob("openbb_platform/openbb/package/*.py")
for path in package_paths:
name = os.path.basename(path).split(".")[0]
paths_and_names[path] = name
paths_and_names = {
path: name for path, name in paths_and_names.items() if not name.startswith("_")
}
return paths_and_names
def execute_docstring_examples(
module_name: str, file_path: str, verbose: bool = False
) -> List[str]:
"""Execute the docstring examples of a module."""
errors = []
module_name = f"openbb.package.{module_name}"
module = importlib.import_module(module_name)
examples = doctest.DocTestFinder().find(module)
def execute_script(script, source_info):
try:
local_namespace = {}
exec( # noqa: S102 pylint: disable=exec-used
script, local_namespace, local_namespace
)
if verbose:
logging.info("Executed a test from %s", source_info)
except Exception as e:
errors.append(
f"An exception occurred while executing script from {source_info} - {str(e)}"
)
for example in examples:
script_lines = []
for test in example.examples:
script_lines.append(test.source)
script_content = "".join(script_lines)
execute_script(script_content, file_path)
return errors
def check_docstring_examples() -> List[str]:
"""Test that the docstring examples execute without errors."""
errors = []
paths_and_names = get_packages_info()
for path, name in paths_and_names.items():
result = execute_docstring_examples(name, path, verbose=True)
if result:
errors.extend(result)
return errors