Files
OpenBB/openbb_platform/extensions/technical/tests/test_router.py
Danglewood d8bab38d57 [V5] [BugFix] Fix for Breaking Changes in FastAPI 0.137+ (#7537)
* fix route introspection for fastapi 0.137

* recapture oeccd gdp forecast test cassette

---------

Co-authored-by: deeleeramone <>
2026-06-18 08:35:41 -07:00

45 lines
1.7 KiB
Python

"""Tests for the top-level openbb_technical.router aggregator."""
from __future__ import annotations
from openbb_core.app.route_iter import iter_api_routes
from openbb_technical.router import router
class TestTopLevelRouter:
def test_aggregator_exposes_indicator_routes(self):
paths = {r.path for r in iter_api_routes(router.api_router)}
assert "/sma" in paths
assert "/rsi" in paths
assert "/macd" in paths
assert "/atr" in paths
assert "/realized_volatility" in paths
assert "/aroon" in paths
assert "/obv" in paths
assert "/fib" in paths
assert "/relative_rotation" in paths
def test_aggregator_exposes_signal_routes(self):
paths = {r.path for r in iter_api_routes(router.api_router)}
assert "/signals/crossovers" in paths
assert "/signals/oscillator_signals" in paths
assert "/signals/divergences" in paths
assert "/signals/breakouts" in paths
assert "/signals/candlestick_patterns" in paths
assert "/signals/regime" in paths
def test_aggregator_exposes_multi_routes(self):
paths = {r.path for r in iter_api_routes(router.api_router)}
assert "/multi" in paths
assert "/screen" in paths
assert "/correlation" in paths
assert "/correlation_matrix" in paths
assert "/indicators" in paths
def test_no_duplicate_paths(self):
paths = [r.path for r in iter_api_routes(router.api_router)]
assert len(paths) == len(set(paths)), (
f"Duplicate route registered. Counts: "
f"{ {p: paths.count(p) for p in set(paths) if paths.count(p) > 1} }"
)