Files
OpenBB/cli/tests/test_argparse_translator_obbject_registry.py
Danglewood 8b9f461dca [Enhancement] Convert Params Models To Dictionary Before Assigning As Private Attribute In OBBject. (#6492)
* 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>
2024-06-13 08:12:55 +00:00

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