diff options
author | Danglewood <85772166+deeleeramone@users.noreply.github.com> | 2024-05-14 23:11:02 -0700 |
---|---|---|
committer | Danglewood <85772166+deeleeramone@users.noreply.github.com> | 2024-05-14 23:11:02 -0700 |
commit | a5ec56ed39a08a09f824ac0f37ea1f40df82e67b (patch) | |
tree | f9b1e39d170928fdd3018623398844a7ce015b4f | |
parent | 1988ad5309ad02dffb0d917e7cf7f83477ca3673 (diff) |
integration tests
4 files changed, 103 insertions, 2 deletions
diff --git a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_api.py b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_api.py index da9c88c77c4..45e7c86a685 100644 --- a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_api.py +++ b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_api.py @@ -623,3 +623,46 @@ def test_fixedincome_corporate_bond_prices(params, headers): result = requests.get(url, headers=headers, timeout=40) assert isinstance(result, requests.Response) assert result.status_code == 200 + + +@parametrize( + "params", + [ + ({"date": "2023-05-01,2024-05-01", "provider": "fmp"}), + ( + { + "date": "2023-05-01", + "country": "united_kingdom", + "provider": "econdb", + "use_cache": True, + } + ), + ( + { + "provider": "ecb", + "yield_curve_type": "par_yield", + "date": None, + "rating": "aaa", + "use_cache": True, + } + ), + ( + { + "provider": "fred", + "yield_curve_type": "nominal", + "date": "2023-05-01,2024-05-01", + } + ), + ({"provider": "federal_reserve", "date": "2023-05-01,2024-05-01"}), + ], +) +@pytest.mark.integration +def test_fixedincome_government_yield_curve(params, headers): + """Test the treasury rates endpoint.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/fixedincome/government/yield_curve?{query_str}" + result = requests.get(url, headers=headers, timeout=10) + assert isinstance(result, requests.Response) + assert result.status_code == 200 diff --git a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py index 57ba30d7fad..3efa8727269 100644 --- a/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py +++ b/openbb_platform/extensions/fixedincome/integration/test_fixedincome_python.py @@ -578,3 +578,45 @@ def test_fixedincome_corporate_bond_prices(params, obb): assert result assert isinstance(result, OBBject) assert len(result.results) > 0 + + +@parametrize( + "params", + [ + ({"date": "2023-05-01,2024-05-01", "provider": "fmp"}), + ( + { + "date": "2023-05-01", + "country": "united_kingdom", + "provider": "econdb", + "use_cache": True, + } + ), + ( + { + "provider": "ecb", + "yield_curve_type": "par_yield", + "date": None, + "rating": "aaa", + "use_cache": True, + } + ), + ( + { + "provider": "fred", + "yield_curve_type": "nominal", + "date": "2023-05-01,2024-05-01", + } + ), + ({"provider": "federal_reserve", "date": "2023-05-01,2024-05-01"}), + ], +) +@pytest.mark.integration +def test_fixedincome_government_yield_curve(params, obb): + """Test the government yield curve endpoint.""" + params = {p: v for p, v in params.items() if v} + + result = obb.fixedincome.government.yield_curve(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 diff --git a/openbb_platform/extensions/fixedincome/openbb_fixedincome/government/government_router.py b/openbb_platform/extensions/fixedincome/openbb_fixedincome/government/government_router.py index 0969416aab1..eb97388ad9c 100644 --- a/openbb_platform/extensions/fixedincome/openbb_fixedincome/government/government_router.py +++ b/openbb_platform/extensions/fixedincome/openbb_fixedincome/government/government_router.py @@ -1,5 +1,6 @@ """Fixed Income Government Router.""" +from openbb_core.app.deprecation import OpenBBDeprecationWarning from openbb_core.app.model.command_context import CommandContext from openbb_core.app.model.example import APIEx from openbb_core.app.model.obbject import OBBject @@ -19,8 +20,11 @@ router = Router(prefix="/government") @router.command( model="YieldCurve", examples=[ - APIEx(parameters={"provider": "econdb"}), + APIEx(parameters={"provider": "federal_reserve"}), + APIEx(parameters={"date": "2023-05-01,2024-05-01", "provider": "fmp"}), APIEx(parameters={"date": "2023-05-01", "country": "united_kingdom", "provider": "econdb"}), + APIEx(parameters={"provider": "ecb", "yield_curve_type": "par_yield"}), + APIEx(parameters={"provider": "fred", "yield_curve_type": "real", "date": "2023-05-01,2024-05-01"}) ], ) async def yield_curve( @@ -35,6 +39,12 @@ async def yield_curve( @router.command( model="USYieldCurve", + deprecated=True, + deprecation=OpenBBDeprecationWarning( + message="This endpoint will be removed in a future version. Use, `/fixedincome/government/yield_curve`, instead.", + since=(4, 1), + expected_removal=(4, 3), + ), examples=[ APIEx(parameters={"provider": "fred"}), APIEx(parameters={"inflation_adjusted": True, "provider": "fred"}), @@ -52,6 +62,12 @@ async def us_yield_curve( @router.command( model="EUYieldCurve", + deprecated=True, + deprecation=OpenBBDeprecationWarning( + message="This endpoint will be removed in a future version. Use, `/fixedincome/government/yield_curve`, instead.", + since=(4, 1), + expected_removal=(4, 3), + ), examples=[ APIEx(parameters={"provider": "ecb"}), APIEx(parameters={"yield_curve_type": "spot_rate", "provider": "ecb"}), diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/yield_curve.py b/openbb_platform/providers/fmp/openbb_fmp/models/yield_curve.py index 8e2e3d8f245..634795023b2 100644 --- a/openbb_platform/providers/fmp/openbb_fmp/models/yield_curve.py +++ b/openbb_platform/providers/fmp/openbb_fmp/models/yield_curve.py @@ -91,7 +91,7 @@ class FMPYieldCurveFetcher( """Return the transformed data.""" if not data: raise EmptyDataError("The request was returned empty.") - df = DataFrame(data).set_index("date") + df = DataFrame(data).set_index("date").sort_index() dates = query.date.split(",") if query.date else [df.index.max()] df.index = DatetimeIndex(df.index) dates_list = DatetimeIndex(dates) |