| """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 |
|
|