summaryrefslogtreecommitdiff
path: root/backend/tests
diff options
context:
space:
mode:
Diffstat (limited to 'backend/tests')
-rw-r--r--backend/tests/test_api.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py
index 345c0a3..230182e 100644
--- a/backend/tests/test_api.py
+++ b/backend/tests/test_api.py
@@ -633,6 +633,36 @@ def test_valuation_schema_structure() -> None:
assert resp.ev_revenue.available is False
+def test_dcf_result_projection_years_default() -> None:
+ from app.schemas import DcfResult
+ dcf = DcfResult(available=False)
+ assert dcf.projection_years == 5
+
+
+def test_get_valuation_includes_projection_years(monkeypatch) -> None:
+ import pandas as pd
+ clear_service_caches()
+ monkeypatch.setattr(
+ data_service, "get_company_info",
+ lambda symbol: {
+ "currentPrice": 150.0,
+ "sharesOutstanding": 1_000_000_000.0,
+ "totalDebt": 0.0,
+ "totalCash": 0.0,
+ },
+ )
+ monkeypatch.setattr(data_service, "get_shares_outstanding", lambda symbol: 1_000_000_000.0)
+ cf = annual_frame({
+ "Operating Cash Flow": [80.0, 90.0, 100.0, 110.0],
+ "Capital Expenditure": [-10.0, -10.0, -10.0, -10.0],
+ })
+ monkeypatch.setattr(data_service, "get_cash_flow", lambda symbol, quarterly=False: cf if not quarterly else pd.DataFrame())
+ monkeypatch.setattr(data_service, "get_income_statement", lambda symbol, quarterly=False: pd.DataFrame())
+ monkeypatch.setattr(data_service, "get_balance_sheet", lambda symbol, quarterly=False: pd.DataFrame())
+ result = data_service.get_valuation("AAPL")
+ assert result["dcf"]["projection_years"] == 5
+
+
def test_build_fcf_series_happy_path() -> None:
cf = annual_frame({
"Operating Cash Flow": [100.0, 90.0, 80.0, 70.0],