|
|
"""Test the BasePlatformController.""" |
|
|
|
|
|
from unittest.mock import MagicMock, patch |
|
|
|
|
|
import pytest |
|
|
from openbb_cli.controllers.base_platform_controller import PlatformController, Session |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture |
|
|
def mock_session(): |
|
|
"""Mock session fixture.""" |
|
|
with patch( |
|
|
"openbb_cli.controllers.base_platform_controller.session", |
|
|
MagicMock(spec=Session), |
|
|
) as mock: |
|
|
yield mock |
|
|
|
|
|
|
|
|
def test_initialization_with_valid_params(mock_session): |
|
|
"""Test the initialization of the BasePlatformController.""" |
|
|
translators = {"dummy_translator": MagicMock()} |
|
|
controller = PlatformController( |
|
|
name="test", parent_path=["parent"], translators=translators |
|
|
) |
|
|
assert controller._name == "test" |
|
|
assert controller.translators == translators |
|
|
|
|
|
|
|
|
def test_initialization_without_required_params(): |
|
|
"""Test the initialization of the BasePlatformController without required params.""" |
|
|
with pytest.raises(ValueError): |
|
|
PlatformController(name="test", parent_path=["parent"]) |
|
|
|
|
|
|
|
|
def test_command_generation(mock_session): |
|
|
"""Test the command generation method.""" |
|
|
translator = MagicMock() |
|
|
translators = {"test_command": translator} |
|
|
controller = PlatformController( |
|
|
name="test", parent_path=["parent"], translators=translators |
|
|
) |
|
|
|
|
|
|
|
|
assert "test_command" in controller.translators |
|
|
|
|
|
|
|
|
def test_print_help(mock_session): |
|
|
"""Test the print help method.""" |
|
|
translators = {"test_command": MagicMock()} |
|
|
controller = PlatformController( |
|
|
name="test", parent_path=["parent"], translators=translators |
|
|
) |
|
|
|
|
|
with patch( |
|
|
"openbb_cli.controllers.base_platform_controller.MenuText" |
|
|
) as mock_menu_text: |
|
|
controller.print_help() |
|
|
mock_menu_text.assert_called_once_with("/parent/test/") |
|
|
|
|
|
|
|
|
def test_sub_controller_generation(mock_session): |
|
|
"""Test the sub controller generation method.""" |
|
|
translators = {"test_menu_item": MagicMock()} |
|
|
controller = PlatformController( |
|
|
name="test", parent_path=["parent"], translators=translators |
|
|
) |
|
|
|
|
|
assert "test_menu_item" in controller.translators |
|
|
|