Files
OpenBB/tests/test_fa_yield_curve_model.py
2021-03-25 22:58:31 -07:00

71 lines
2.0 KiB
Python

""" fundamental_analysis/yield_curve_model.py tests """
from datetime import datetime
from io import StringIO
import unittest
from unittest import mock
import pandas as pd
# pylint: disable=unused-import
from gamestonk_terminal.test_helper import ( # noqa: F401
parameterize_from_file,
pytest_generate_tests,
)
from gamestonk_terminal.fundamental_analysis.yield_curve_model import (
get_yield_curve,
get_yield_curve_year,
)
assertions = unittest.TestCase("__init__")
class TestFaYieldCurveModel:
@mock.patch(
"gamestonk_terminal.fundamental_analysis.yield_curve_model.get_yield_curve_year"
)
@parameterize_from_file(
"test_get_yield_curve",
"../tests/data/fa_yield_curve_model.yaml",
)
# pylint: disable=too-many-arguments
def test_get_yield_curve(
self,
mock_get_yield_curve_year,
start,
end,
mock_get_yield_curve_year_rets,
expected_result,
):
rets = list()
for a_ret in mock_get_yield_curve_year_rets:
rets.append(
pd.read_csv(StringIO(a_ret), header=0, index_col=0, parse_dates=True)
)
mock_get_yield_curve_year.side_effect = rets
df = get_yield_curve(
datetime.strptime(start, "%m/%d/%y"),
datetime.strptime(end, "%m/%d/%y"),
)
assertions.assertEqual(
df.to_csv().replace("\r\n", "\n"), expected_result.replace("\r\n", "\n")
)
@mock.patch("gamestonk_terminal.fundamental_analysis.yield_curve_model.requests")
@parameterize_from_file(
"test_get_yield_curve_year",
"../tests/data/fa_yield_curve_model.yaml",
)
def test_get_yield_curve_year(
self, mock_request_get, year, mock_yield_curve_page, expected_result
):
mock_request_get.get().text = mock_yield_curve_page
ret = get_yield_curve_year(year)
assertions.assertEqual(
ret.to_csv().replace("\r\n", "\n"), expected_result.replace("\r\n", "\n")
)