from openbb_service import _to_dicts, _first_or_empty class MockModel: def __init__(self, data: dict): self._data = data def model_dump(self): return self._data class MockOBBject: def __init__(self, results): self.results = results class TestToDicts: def test_none_result(self): assert _to_dicts(None) == [] def test_none_results(self): obj = MockOBBject(results=None) assert _to_dicts(obj) == [] def test_list_results(self): obj = MockOBBject(results=[ MockModel({"a": 1}), MockModel({"b": 2}), ]) result = _to_dicts(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) assert result == [{"x": 42}] class TestFirstOrEmpty: def test_empty(self): assert _first_or_empty(None) == {} def test_with_data(self): obj = MockOBBject(results=[MockModel({"price": 150.0})]) result = _first_or_empty(obj) assert result == {"price": 150.0}