From d2471a9c4fec23a9196d20bac90a23463fbdeda7 Mon Sep 17 00:00:00 2001 From: Henrique Joaquim Date: Mon, 2 Oct 2023 14:43:27 +0100 Subject: [PATCH] Hotfix/int tests python fixture (#5504) * fix command runner tests that were generating logs * use the import behind a fixture * updating the generator --- .../crypto/integration/test_crypto_python.py | 13 ++- .../integration/test_economy_python.py | 13 ++- .../integration/test_fixedincome_python.py | 29 ++++--- .../forex/integration/test_forex_python.py | 15 +++- .../integration/test_futures_python.py | 15 +++- .../news/integration/test_news_python.py | 13 ++- .../stocks/integration/test_stocks_python.py | 83 ++++++++++--------- .../utils/integration_tests_generator.py | 12 ++- .../core/tests/app/test_command_runner.py | 11 ++- 9 files changed, 140 insertions(+), 64 deletions(-) diff --git a/openbb_platform/extensions/crypto/integration/test_crypto_python.py b/openbb_platform/extensions/crypto/integration/test_crypto_python.py index d30bd1a8050..7df073d0ac0 100644 --- a/openbb_platform/extensions/crypto/integration/test_crypto_python.py +++ b/openbb_platform/extensions/crypto/integration/test_crypto_python.py @@ -1,10 +1,19 @@ """Test crypto extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -82,7 +91,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_crypto_load(params): +def test_crypto_load(params, obb): result = obb.crypto.load(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/economy/integration/test_economy_python.py b/openbb_platform/extensions/economy/integration/test_economy_python.py index ca47f4659df..78b967dfffe 100644 --- a/openbb_platform/extensions/economy/integration/test_economy_python.py +++ b/openbb_platform/extensions/economy/integration/test_economy_python.py @@ -1,10 +1,19 @@ """Test economy extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -343,7 +352,7 @@ def test_economy_sp500_multiples(params): ], ) @pytest.mark.integration -def test_economy_fred_index(**params): +def test_economy_fred_index(params): result = obb.economy.fred_index(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py index 4ad652b3d91..4ead9d2e56f 100644 --- a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py +++ b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py @@ -1,9 +1,18 @@ """Test fixedincome extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -11,7 +20,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_fixedincome_treasury(params): +def test_fixedincome_treasury(params, obb): result = obb.fixedincome.treasury(**params) assert result assert isinstance(result, OBBject) @@ -25,7 +34,7 @@ def test_fixedincome_treasury(params): ], ) @pytest.mark.integration -def test_fixedincome_ycrv(params): +def test_fixedincome_ycrv(params, obb): result = obb.fixedincome.ycrv(**params) assert result assert isinstance(result, OBBject) @@ -47,7 +56,7 @@ def test_fixedincome_ycrv(params): ], ) @pytest.mark.integration -def test_fixedincome_sofr(params): +def test_fixedincome_sofr(params, obb): result = obb.fixedincome.sofr(**params) assert result assert isinstance(result, OBBject) @@ -69,7 +78,7 @@ def test_fixedincome_sofr(params): ], ) @pytest.mark.integration -def test_fixedincome_estr(params): +def test_fixedincome_estr(params, obb): result = obb.fixedincome.estr(**params) assert result assert isinstance(result, OBBject) @@ -91,7 +100,7 @@ def test_fixedincome_estr(params): ], ) @pytest.mark.integration -def test_fixedincome_sonia(params): +def test_fixedincome_sonia(params, obb): result = obb.fixedincome.sonia(**params) assert result assert isinstance(result, OBBject) @@ -113,7 +122,7 @@ def test_fixedincome_sonia(params): ], ) @pytest.mark.integration -def test_fixedincome_ameribor(params): +def test_fixedincome_ameribor(params, obb): result = obb.fixedincome.ameribor(**params) assert result assert isinstance(result, OBBject) @@ -135,7 +144,7 @@ def test_fixedincome_ameribor(params): ], ) @pytest.mark.integration -def test_fixedincome_fed(params): +def test_fixedincome_fed(params, obb): result = obb.fixedincome.fed(**params) assert result assert isinstance(result, OBBject) @@ -150,7 +159,7 @@ def test_fixedincome_fed(params): ], ) @pytest.mark.integration -def test_fixedincome_projections(params): +def test_fixedincome_projections(params, obb): result = obb.fixedincome.projections(**params) assert result assert isinstance(result, OBBject) @@ -164,7 +173,7 @@ def test_fixedincome_projections(params): ], ) @pytest.mark.integration -def test_fixedincome_iorb(params): +def test_fixedincome_iorb(params, obb): result = obb.fixedincome.iorb(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/forex/integration/test_forex_python.py b/openbb_platform/extensions/forex/integration/test_forex_python.py index 21df465e5ee..710858406ff 100644 --- a/openbb_platform/extensions/forex/integration/test_forex_python.py +++ b/openbb_platform/extensions/forex/integration/test_forex_python.py @@ -2,10 +2,19 @@ import datetime import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -25,7 +34,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_forex_pairs(params): +def test_forex_pairs(params, obb): result = obb.forex.pairs(**params) assert result assert isinstance(result, OBBject) @@ -109,7 +118,7 @@ def test_forex_pairs(params): ], ) @pytest.mark.integration -def test_forex_load(params): +def test_forex_load(params, obb): result = obb.forex.load(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/futures/integration/test_futures_python.py b/openbb_platform/extensions/futures/integration/test_futures_python.py index 9490a84c5ba..fef638d86f1 100644 --- a/openbb_platform/extensions/futures/integration/test_futures_python.py +++ b/openbb_platform/extensions/futures/integration/test_futures_python.py @@ -1,9 +1,18 @@ """Test futures extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -32,7 +41,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_futures_load(params): +def test_futures_load(params, obb): result = obb.futures.load(**params) assert result assert isinstance(result, OBBject) @@ -46,7 +55,7 @@ def test_futures_load(params): ], ) @pytest.mark.integration -def test_futures_curve(params): +def test_futures_curve(params, obb): result = obb.futures.curve(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/news/integration/test_news_python.py b/openbb_platform/extensions/news/integration/test_news_python.py index 753a0f5a9bb..c94fc54a68f 100644 --- a/openbb_platform/extensions/news/integration/test_news_python.py +++ b/openbb_platform/extensions/news/integration/test_news_python.py @@ -1,10 +1,19 @@ """Test news extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -32,7 +41,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_news_globalnews(params): +def test_news_globalnews(params, obb): result = obb.news.globalnews(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/stocks/integration/test_stocks_python.py b/openbb_platform/extensions/stocks/integration/test_stocks_python.py index 7111ab8bb15..83157bdfac7 100644 --- a/openbb_platform/extensions/stocks/integration/test_stocks_python.py +++ b/openbb_platform/extensions/stocks/integration/test_stocks_python.py @@ -1,9 +1,18 @@ """Test stocks extension.""" import pytest -from openbb import obb 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.mark.parametrize( "params", [ @@ -35,7 +44,7 @@ from openbb_core.app.model.obbject import OBBject ], ) @pytest.mark.integration -def test_stocks_fa_balance(params): +def test_stocks_fa_balance(params, obb): result = obb.stocks.fa.balance(**params) assert result assert isinstance(result, OBBject) @@ -49,7 +58,7 @@ def test_stocks_fa_balance(params): ], ) @pytest.mark.integration -def test_stocks_fa_balance_growth(params): +def test_stocks_fa_balance_growth(params, obb): result = obb.stocks.fa.balance_growth(**params) assert result assert isinstance(result, OBBject) @@ -68,7 +77,7 @@ def test_stocks_fa_balance_growth(params): ], ) @pytest.mark.integration -def test_stocks_fa_cal(params): +def test_stocks_fa_cal(params, obb): result = obb.stocks.fa.cal(**params) assert result assert isinstance(result, OBBject) @@ -106,7 +115,7 @@ def test_stocks_fa_cal(params): ], ) @pytest.mark.integration -def test_stocks_fa_cash(params): +def test_stocks_fa_cash(params, obb): result = obb.stocks.fa.cash(**params) assert result assert isinstance(result, OBBject) @@ -120,7 +129,7 @@ def test_stocks_fa_cash(params): ], ) @pytest.mark.integration -def test_stocks_fa_cash_growth(params): +def test_stocks_fa_cash_growth(params, obb): result = obb.stocks.fa.cash_growth(**params) assert result assert isinstance(result, OBBject) @@ -134,7 +143,7 @@ def test_stocks_fa_cash_growth(params): ], ) @pytest.mark.integration -def test_stocks_fa_comp(params): +def test_stocks_fa_comp(params, obb): result = obb.stocks.fa.comp(**params) assert result assert isinstance(result, OBBject) @@ -153,7 +162,7 @@ def test_stocks_fa_comp(params): ], ) @pytest.mark.integration -def test_stocks_fa_comsplit(params): +def test_stocks_fa_comsplit(params, obb): result = obb.stocks.fa.comsplit(**params) assert result assert isinstance(result, OBBject) @@ -167,7 +176,7 @@ def test_stocks_fa_comsplit(params): ], ) @pytest.mark.integration -def test_stocks_fa_divs(params): +def test_stocks_fa_divs(params, obb): result = obb.stocks.fa.divs(**params) assert result assert isinstance(result, OBBject) @@ -181,7 +190,7 @@ def test_stocks_fa_divs(params): ], ) @pytest.mark.integration -def test_stocks_fa_earning(params): +def test_stocks_fa_earning(params, obb): result = obb.stocks.fa.earning(**params) assert result assert isinstance(result, OBBject) @@ -195,7 +204,7 @@ def test_stocks_fa_earning(params): ], ) @pytest.mark.integration -def test_stocks_fa_emp(params): +def test_stocks_fa_emp(params, obb): result = obb.stocks.fa.emp(**params) assert result assert isinstance(result, OBBject) @@ -209,7 +218,7 @@ def test_stocks_fa_emp(params): ], ) @pytest.mark.integration -def test_stocks_fa_est(params): +def test_stocks_fa_est(params, obb): result = obb.stocks.fa.est(**params) assert result assert isinstance(result, OBBject) @@ -247,7 +256,7 @@ def test_stocks_fa_est(params): ], ) @pytest.mark.integration -def test_stocks_fa_income(params): +def test_stocks_fa_income(params, obb): result = obb.stocks.fa.income(**params) assert result assert isinstance(result, OBBject) @@ -261,7 +270,7 @@ def test_stocks_fa_income(params): ], ) @pytest.mark.integration -def test_stocks_fa_income_growth(params): +def test_stocks_fa_income_growth(params, obb): result = obb.stocks.fa.income_growth(**params) assert result assert isinstance(result, OBBject) @@ -283,7 +292,7 @@ def test_stocks_fa_income_growth(params): ], ) @pytest.mark.integration -def test_stocks_fa_ins(params): +def test_stocks_fa_ins(params, obb): result = obb.stocks.fa.ins(**params) assert result assert isinstance(result, OBBject) @@ -303,7 +312,7 @@ def test_stocks_fa_ins(params): ], ) @pytest.mark.integration -def test_stocks_fa_ins_own(params): +def test_stocks_fa_ins_own(params, obb): result = obb.stocks.fa.ins_own(**params) assert result assert isinstance(result, OBBject) @@ -317,7 +326,7 @@ def test_stocks_fa_ins_own(params): ], ) @pytest.mark.integration -def test_stocks_fa_metrics(params): +def test_stocks_fa_metrics(params, obb): result = obb.stocks.fa.metrics(**params) assert result assert isinstance(result, OBBject) @@ -331,7 +340,7 @@ def test_stocks_fa_metrics(params): ], ) @pytest.mark.integration -def test_stocks_fa_mgmt(params): +def test_stocks_fa_mgmt(params, obb): result = obb.stocks.fa.mgmt(**params) assert result assert isinstance(result, OBBject) @@ -345,7 +354,7 @@ def test_stocks_fa_mgmt(params): ], ) @pytest.mark.integration -def test_stocks_fa_overview(params): +def test_stocks_fa_overview(params, obb): result = obb.stocks.fa.overview(**params) assert result assert isinstance(result, OBBject) @@ -359,7 +368,7 @@ def test_stocks_fa_overview(params): ], ) @pytest.mark.integration -def test_stocks_fa_own(params): +def test_stocks_fa_own(params, obb): result = obb.stocks.fa.own(**params) assert result assert isinstance(result, OBBject) @@ -373,7 +382,7 @@ def test_stocks_fa_own(params): ], ) @pytest.mark.integration -def test_stocks_fa_pt(params): +def test_stocks_fa_pt(params, obb): result = obb.stocks.fa.pt(**params) assert result assert isinstance(result, OBBject) @@ -388,7 +397,7 @@ def test_stocks_fa_pt(params): ], ) @pytest.mark.integration -def test_stocks_fa_pta(params): +def test_stocks_fa_pta(params, obb): result = obb.stocks.fa.pta(**params) assert result assert isinstance(result, OBBject) @@ -402,7 +411,7 @@ def test_stocks_fa_pta(params): ], ) @pytest.mark.integration -def test_stocks_fa_ratios(params): +def test_stocks_fa_ratios(params, obb): result = obb.stocks.fa.ratios(**params) assert result assert isinstance(result, OBBject) @@ -416,7 +425,7 @@ def test_stocks_fa_ratios(params): ], ) @pytest.mark.integration -def test_stocks_fa_revgeo(params): +def test_stocks_fa_revgeo(params, obb): result = obb.stocks.fa.revgeo(**params) assert result assert isinstance(result, OBBject) @@ -430,7 +439,7 @@ def test_stocks_fa_revgeo(params): ], ) @pytest.mark.integration -def test_stocks_fa_revseg(params): +def test_stocks_fa_revseg(params, obb): result = obb.stocks.fa.revseg(**params) assert result assert isinstance(result, OBBject) @@ -444,7 +453,7 @@ def test_stocks_fa_revseg(params): ], ) @pytest.mark.integration -def test_stocks_fa_filings(params): +def test_stocks_fa_filings(params, obb): result = obb.stocks.fa.filings(**params) assert result assert isinstance(result, OBBject) @@ -458,7 +467,7 @@ def test_stocks_fa_filings(params): ], ) @pytest.mark.integration -def test_stocks_fa_shrs(params): +def test_stocks_fa_shrs(params, obb): result = obb.stocks.fa.shrs(**params) assert result assert isinstance(result, OBBject) @@ -472,7 +481,7 @@ def test_stocks_fa_shrs(params): ], ) @pytest.mark.integration -def test_stocks_fa_split(params): +def test_stocks_fa_split(params, obb): result = obb.stocks.fa.split(**params) assert result assert isinstance(result, OBBject) @@ -486,7 +495,7 @@ def test_stocks_fa_split(params): ], ) @pytest.mark.integration -def test_stocks_fa_transcript(params): +def test_stocks_fa_transcript(params, obb): result = obb.stocks.fa.transcript(**params) assert result assert isinstance(result, OBBject) @@ -500,7 +509,7 @@ def test_stocks_fa_transcript(params): ], ) @pytest.mark.integration -def test_stocks_ca_peers(params): +def test_stocks_ca_peers(params, obb): result = obb.stocks.ca.peers(**params) assert result assert isinstance(result, OBBject) @@ -515,7 +524,7 @@ def test_stocks_ca_peers(params): ], ) @pytest.mark.integration -def test_stocks_options_chains(params): +def test_stocks_options_chains(params, obb): result = obb.stocks.options.chains(**params) assert result assert isinstance(result, OBBject) @@ -672,7 +681,7 @@ def test_stocks_options_chains(params): ], ) @pytest.mark.integration -def test_stocks_load(params): +def test_stocks_load(params, obb): result = obb.stocks.load(**params) assert result assert isinstance(result, OBBject) @@ -716,7 +725,7 @@ def test_stocks_load(params): ], ) @pytest.mark.integration -def test_stocks_news(params): +def test_stocks_news(params, obb): result = obb.stocks.news(**params) assert result assert isinstance(result, OBBject) @@ -729,7 +738,7 @@ def test_stocks_news(params): ], ) @pytest.mark.integration -def test_stocks_multiples(params): +def test_stocks_multiples(params, obb): result = obb.stocks.multiples(**params) assert result assert isinstance(result, OBBject) @@ -743,7 +752,7 @@ def test_stocks_multiples(params): ], ) @pytest.mark.integration -def test_stocks_search(params): +def test_stocks_search(params, obb): result = obb.stocks.search(**params) assert result assert isinstance(result, OBBject) @@ -758,7 +767,7 @@ def test_stocks_search(params): ], ) @pytest.mark.integration -def test_stocks_quote(params): +def test_stocks_quote(params, obb): result = obb.stocks.quote(**params) assert result assert isinstance(result, OBBject) @@ -772,7 +781,7 @@ def test_stocks_quote(params): ], ) @pytest.mark.integration -def test_stocks_info(params): +def test_stocks_info(params, obb): result = obb.stocks.info(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/extensions/tests/utils/integration_tests_generator.py b/openbb_platform/extensions/tests/utils/integration_tests_generator.py index c5f95f2c470..eb790686a92 100644 --- a/openbb_platform/extensions/tests/utils/integration_tests_generator.py +++ b/openbb_platform/extensions/tests/utils/integration_tests_generator.py @@ -29,8 +29,16 @@ def create_integration_test_files(extensions: List[PosixPath]) -> None: f.write( f'''"""Test {extension_name} extension.""" import pytest -from openbb import obb 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 ''' ) @@ -110,7 +118,7 @@ def add_test_commands_to_file( # pylint: disable=W0102 ], ) @pytest.mark.integration -def test_{test_name}(**params): +def test_{test_name}(**params, obb): result = obb.{command_name}(**params) assert result assert isinstance(result, OBBject) diff --git a/openbb_platform/platform/core/tests/app/test_command_runner.py b/openbb_platform/platform/core/tests/app/test_command_runner.py index 412b03e5d0f..2e4a76c9f0e 100644 --- a/openbb_platform/platform/core/tests/app/test_command_runner.py +++ b/openbb_platform/platform/core/tests/app/test_command_runner.py @@ -253,12 +253,15 @@ def test_parameters_builder_build(mock_func, execution_context): } -def test_command_runner(): +@patch("openbb_core.app.command_runner.LoggingService") +def test_command_runner(_): """Test command runner.""" + assert CommandRunner() -def test_command_runner_properties(): +@patch("openbb_core.app.command_runner.LoggingService") +def test_command_runner_properties(mock_logging_service): """Test properties.""" sys = SystemSettings() @@ -270,9 +273,11 @@ def test_command_runner_properties(): assert runner.system_settings == sys assert runner.user_settings == user assert runner.command_map == cmd_map + assert mock_logging_service.called_once() -def test_command_runner_build(): +@patch("openbb_core.app.command_runner.LoggingService") +def test_command_runner_run(_): runner = CommandRunner() with patch(