mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-01 15:01:18 +00:00
* fixed income unit tests * api key fix * fix mock api key * Update poetry.lock * Poetry * Pytest : fix name collisions * dependency update * Re-record unit test * Update unit tests --------- Co-authored-by: Luqman <luqazino@gmail.com> Co-authored-by: Chavithra <chavithra@gmail.com>
262 lines
6.4 KiB
Python
262 lines
6.4 KiB
Python
import pytest
|
|
from pandas import DataFrame
|
|
|
|
from openbb_terminal.fixedincome import fred_model
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def vcr_config():
|
|
return {
|
|
"filter_headers": [("User-Agent", None)],
|
|
"filter_query_parameters": [
|
|
("api_key", "MOCK_API_KEY"),
|
|
],
|
|
}
|
|
|
|
|
|
@pytest.mark.vcr
|
|
@pytest.mark.parametrize("inflation", [True, False])
|
|
def test_yield_curve(recorder, inflation):
|
|
data = fred_model.get_yield_curve(date="2023-02-08", inflation_adjusted=inflation)
|
|
|
|
assert isinstance(data, DataFrame)
|
|
recorder.capture(data)
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"series_id, kwargs",
|
|
[
|
|
("DGS10", {"start_date": "2020-01-01", "end_date": "2020-02-01"}),
|
|
],
|
|
)
|
|
def test_get_series_data(series_id, kwargs):
|
|
fred_model.get_series_data(series_id, **kwargs)
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("overnight", "2020-01-01", "2020-02-01"),
|
|
],
|
|
)
|
|
def test_get_sofr(parameter, start_date, end_date):
|
|
df = fred_model.get_sofr(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("rate", "2020-01-01", "2020-02-01"),
|
|
],
|
|
)
|
|
def test_get_sonia(parameter, start_date, end_date):
|
|
df = fred_model.get_sonia(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("overnight", "2020-01-01", "2020-02-01"),
|
|
],
|
|
)
|
|
def test_get_ameribor(parameter, start_date, end_date):
|
|
df = fred_model.get_ameribor(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, kwargs",
|
|
[("monthly", dict())],
|
|
)
|
|
def test_get_fed(parameter, kwargs):
|
|
df = fred_model.get_fed(parameter, **kwargs)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize("start_date, end_date", [("2023-01-01", "2023-03-30")])
|
|
def test_get_iorb(start_date, end_date):
|
|
df = fred_model.get_iorb(start_date=start_date, end_date=end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
def test_get_projection():
|
|
df = fred_model.get_projection()
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("daily_excl_weekend", "2020-01-01", "2020-02-01"),
|
|
],
|
|
)
|
|
def test_get_dwpcr(parameter, start_date, end_date):
|
|
df = fred_model.get_dwpcr(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
def test_get_ecb():
|
|
df = fred_model.get_ecb()
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, maturity, start_date, end_date",
|
|
[
|
|
("tbill", "4_week", "2020-01-01", "2023-02-01"),
|
|
],
|
|
)
|
|
def test_get_usrates(parameter, maturity, start_date, end_date):
|
|
df = fred_model.get_usrates(parameter, maturity, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"data_type, category, area, grade, start_date, end_date",
|
|
[
|
|
("yield", "all", "us", "non_sovereign", "2020-01-01", "2023-02-01"),
|
|
],
|
|
)
|
|
def test_get_icebofa(data_type, category, area, grade, start_date, end_date):
|
|
df = fred_model.get_icebofa(data_type, category, area, grade, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"data_type, kwargs",
|
|
[
|
|
("baa", {"start_date": "2020-01-01", "end_date": "2023-02-01"}),
|
|
],
|
|
)
|
|
def test_get_moody(data_type, kwargs):
|
|
df = fred_model.get_moody(data_type, **kwargs)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"maturity, category, grade, start_date, end_date",
|
|
[
|
|
("30d", "financial", "aa", "2020-01-01", "2023-02-01"),
|
|
],
|
|
)
|
|
def test_get_cp(maturity, category, grade, start_date, end_date):
|
|
df = fred_model.get_cp(maturity, category, grade, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"maturity, category, start_date, end_date",
|
|
[
|
|
(["10y"], ["spot_rate"], "2020-01-01", "2023-02-01"),
|
|
],
|
|
)
|
|
def test_get_spot(maturity, category, start_date, end_date):
|
|
df = fred_model.get_spot(maturity, category, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize("date, par", [("2023-03-30", False)])
|
|
def test_get_hqm(date, par):
|
|
df = fred_model.get_hqm(date=date, par=par)
|
|
|
|
assert isinstance(df[0], DataFrame)
|
|
assert not df[0].empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("3_month", "2020-01-01", "2021-02-01"),
|
|
],
|
|
)
|
|
def test_get_tbffr(parameter, start_date, end_date):
|
|
df = fred_model.get_tbffr(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"category, area, grade, options, start_date, end_date",
|
|
[
|
|
("all", "us", "non_sovereign", False, "2020-01-01", "2021-02-01"),
|
|
],
|
|
)
|
|
def test_get_icespread(category, area, grade, options, start_date, end_date):
|
|
df = fred_model.get_icespread(category, area, grade, options, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("10_year", "2020-01-01", "2021-02-01"),
|
|
],
|
|
)
|
|
def test_get_ffrmc(parameter, start_date, end_date):
|
|
df = fred_model.get_ffrmc(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|
|
|
|
|
|
@pytest.mark.record_http
|
|
@pytest.mark.parametrize(
|
|
"parameter, start_date, end_date",
|
|
[
|
|
("3_month", "2020-01-01", "2021-02-01"),
|
|
],
|
|
)
|
|
def test_get_tmc(parameter, start_date, end_date):
|
|
df = fred_model.get_tmc(parameter, start_date, end_date)
|
|
|
|
assert isinstance(df, DataFrame)
|
|
assert not df.empty
|