Files
OpenBB/tests/openbb_terminal/fixedincome/test_fred_model.py
Igor Radovanovic 65e3c8573c Fixed income unit tests (#4568)
* 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>
2023-04-03 16:42:23 +00:00

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