diff options
Diffstat (limited to 'backend/tests')
| -rw-r--r-- | backend/tests/test_api.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py index 0054c49..395bc12 100644 --- a/backend/tests/test_api.py +++ b/backend/tests/test_api.py @@ -598,3 +598,32 @@ def test_financials_route_period_param(monkeypatch) -> None: monkeypatch.setattr(main.data_service, "get_financials", mock_get_financials) main.ticker_financials("AAPL", period="quarterly") assert captured == ["quarterly"] + + +def test_valuation_schema_structure() -> None: + from app.schemas import DcfResult, MultipleResult, ValuationResponse + + dcf_unavail = DcfResult(available=False) + assert dcf_unavail.available is False + assert dcf_unavail.wacc == 0.10 + assert dcf_unavail.terminal_growth == 0.03 + assert dcf_unavail.error is None + assert dcf_unavail.intrinsic_value_per_share is None + + mult_unavail = MultipleResult(available=False) + assert mult_unavail.available is False + assert mult_unavail.implied_price_per_share is None + + resp = ValuationResponse( + symbol="AAPL", + current_price=150.0, + shares_outstanding=15_000_000_000.0, + dcf=DcfResult(available=True, intrinsic_value_per_share=182.0, growth_rate_used=0.082), + ev_ebitda=MultipleResult(available=True, implied_price_per_share=178.0, multiple_used=20.0), + ev_revenue=MultipleResult(available=False), + price_to_book=MultipleResult(available=False), + ) + assert resp.symbol == "AAPL" + assert resp.dcf.intrinsic_value_per_share == 182.0 + assert resp.ev_ebitda.multiple_used == 20.0 + assert resp.ev_revenue.available is False |
