test: fix broken tests after refactor

- Update test_openbb_service to import from obb_utils (to_list,
  first_or_empty) instead of removed _to_dicts/_first_or_empty
- Update test_stock_upgrades to mock openbb_service instead of
  finnhub_service (upgrades moved to yfinance)
This commit is contained in:
Yaojia Wang
2026-03-19 17:47:36 +01:00
parent 89bdc6c552
commit a57a6835c5
2 changed files with 12 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
from openbb_service import _to_dicts, _first_or_empty
from obb_utils import to_list, first_or_empty
class MockModel:
@@ -14,34 +14,34 @@ class MockOBBject:
self.results = results
class TestToDicts:
class TestToList:
def test_none_result(self):
assert _to_dicts(None) == []
assert to_list(None) == []
def test_none_results(self):
obj = MockOBBject(results=None)
assert _to_dicts(obj) == []
assert to_list(obj) == []
def test_list_results(self):
obj = MockOBBject(results=[
MockModel({"a": 1}),
MockModel({"b": 2}),
])
result = _to_dicts(obj)
result = to_list(obj)
assert len(result) == 2
assert result[0] == {"a": 1}
def test_single_result(self):
obj = MockOBBject(results=MockModel({"x": 42}))
result = _to_dicts(obj)
result = to_list(obj)
assert result == [{"x": 42}]
class TestFirstOrEmpty:
def test_empty(self):
assert _first_or_empty(None) == {}
assert first_or_empty(None) == {}
def test_with_data(self):
obj = MockOBBject(results=[MockModel({"price": 150.0})])
result = _first_or_empty(obj)
result = first_or_empty(obj)
assert result == {"price": 150.0}

View File

@@ -66,10 +66,12 @@ async def test_stock_recommendations(mock_recs, client):
@pytest.mark.asyncio
@patch("routes_sentiment.finnhub_service.get_upgrade_downgrade", new_callable=AsyncMock)
@patch("routes_sentiment.openbb_service.get_upgrades_downgrades", new_callable=AsyncMock)
async def test_stock_upgrades(mock_upgrades, client):
mock_upgrades.return_value = [
{"company": "Morgan Stanley", "action": "upgrade", "fromGrade": "Hold", "toGrade": "Buy"}
{"date": "2026-03-05", "company": "Morgan Stanley", "action": "upgrade",
"from_grade": "Hold", "to_grade": "Buy", "price_target_action": "Raises",
"current_price_target": 300.0, "prior_price_target": 250.0}
]
resp = await client.get("/api/v1/stock/AAPL/upgrades")
assert resp.status_code == 200