mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-05-06 22:12:12 +08:00
* convert params models to dict * update cli test * fix test_static_command_runner_chart * mock_obbject results * minor linting adjustments * review changes * charting test mock obbject --------- Co-authored-by: Henrique Joaquim <henriquecjoaquim@gmail.com>
90 lines
2.5 KiB
Python
90 lines
2.5 KiB
Python
"""Test OBBject Registry."""
|
|
|
|
from unittest.mock import Mock
|
|
|
|
import pytest
|
|
from openbb_cli.argparse_translator.obbject_registry import Registry
|
|
from openbb_core.app.model.obbject import OBBject
|
|
|
|
# pylint: disable=redefined-outer-name, protected-access
|
|
|
|
|
|
@pytest.fixture
|
|
def registry():
|
|
"""Fixture to create a Registry instance for testing."""
|
|
return Registry()
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_obbject():
|
|
"""Fixture to create a mock OBBject for testing."""
|
|
|
|
class MockModel:
|
|
"""Mock model for testing."""
|
|
|
|
def __init__(self, value):
|
|
self.mock_value = value
|
|
self._model_json_schema = "mock_json_schema"
|
|
|
|
def model_json_schema(self):
|
|
return self._model_json_schema
|
|
|
|
obb = Mock(spec=OBBject)
|
|
obb.id = "123"
|
|
obb.provider = "test_provider"
|
|
obb.extra = {"command": "test_command"}
|
|
obb._route = "/test/route"
|
|
obb._standard_params = Mock()
|
|
obb._standard_params = {}
|
|
obb.results = [MockModel(1), MockModel(2)]
|
|
return obb
|
|
|
|
|
|
def test_listing_all_obbjects(registry, mock_obbject):
|
|
"""Test listing all obbjects with additional properties."""
|
|
registry.register(mock_obbject)
|
|
|
|
all_obbjects = registry.all
|
|
assert len(all_obbjects) == 1
|
|
assert all_obbjects[0]["command"] == "test_command"
|
|
assert all_obbjects[0]["provider"] == "test_provider"
|
|
|
|
|
|
def test_registry_initialization(registry):
|
|
"""Test the Registry is initialized correctly."""
|
|
assert registry.obbjects == []
|
|
|
|
|
|
def test_register_new_obbject(registry, mock_obbject):
|
|
"""Test registering a new OBBject."""
|
|
registry.register(mock_obbject)
|
|
assert mock_obbject in registry.obbjects
|
|
|
|
|
|
def test_register_duplicate_obbject(registry, mock_obbject):
|
|
"""Test that duplicate OBBjects are not added."""
|
|
registry.register(mock_obbject)
|
|
registry.register(mock_obbject)
|
|
assert len(registry.obbjects) == 1
|
|
|
|
|
|
def test_get_obbject_by_index(registry, mock_obbject):
|
|
"""Test retrieving an obbject by its index."""
|
|
registry.register(mock_obbject)
|
|
retrieved = registry.get(0)
|
|
assert retrieved == mock_obbject
|
|
|
|
|
|
def test_remove_obbject_by_index(registry, mock_obbject):
|
|
"""Test removing an obbject by index."""
|
|
registry.register(mock_obbject)
|
|
registry.remove(0)
|
|
assert mock_obbject not in registry.obbjects
|
|
|
|
|
|
def test_remove_last_obbject_by_default(registry, mock_obbject):
|
|
"""Test removing the last obbject by default."""
|
|
registry.register(mock_obbject)
|
|
registry.remove()
|
|
assert not registry.obbjects
|