mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 13:01:38 +00:00
Test router coverage, system, and settings.
This commit is contained in:
@@ -8,9 +8,11 @@ router = APIRouter(prefix="/coverage", tags=["Coverage"])
|
||||
|
||||
@router.get("/providers")
|
||||
async def get_provider_coverage() -> Dict[str, List[str]]:
|
||||
"""Get provider coverage."""
|
||||
return CommandMap().provider_coverage
|
||||
|
||||
|
||||
@router.get("/commands")
|
||||
async def get_command_coverage() -> Dict[str, List[str]]:
|
||||
"""Get command coverage."""
|
||||
return CommandMap().command_coverage
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from openbb_core.api.dependency.user import (
|
||||
UserService,
|
||||
get_user,
|
||||
get_user_service,
|
||||
)
|
||||
from openbb_core.api.dependency.user import UserService, get_user, get_user_service
|
||||
from openbb_core.app.model.credentials import Credentials
|
||||
from openbb_core.app.model.user_settings import UserSettings
|
||||
|
||||
@@ -16,6 +12,7 @@ router = APIRouter(prefix="/settings", tags=["Settings"])
|
||||
async def read_users_settings(
|
||||
user_settings: Annotated[UserSettings, Depends(get_user)],
|
||||
) -> UserSettings:
|
||||
"""Read users settings."""
|
||||
return user_settings
|
||||
|
||||
|
||||
@@ -25,6 +22,7 @@ async def patch_user_credentials(
|
||||
user_settings: Annotated[UserSettings, Depends(get_user)],
|
||||
user_service: Annotated[UserService, Depends(get_user_service)],
|
||||
) -> UserSettings:
|
||||
"""Patch user credentials."""
|
||||
current = user_settings.credentials.dict()
|
||||
incoming = credentials.dict(exclude_none=True)
|
||||
current.update(incoming)
|
||||
|
||||
29
openbb_sdk/sdk/core/tests/api/router/test_coverage.py
Normal file
29
openbb_sdk/sdk/core/tests/api/router/test_coverage.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""Test coverage for the router module."""
|
||||
|
||||
|
||||
from unittest.mock import patch
|
||||
|
||||
from openbb_core.api.router.coverage import get_command_coverage, get_provider_coverage
|
||||
|
||||
|
||||
@patch("openbb_core.api.router.coverage.CommandMap")
|
||||
def test_get_provider_coverage(mock_command_map):
|
||||
"""Test get provider coverage."""
|
||||
mock_command_map.return_value.provider_coverage = {
|
||||
"provider1": ["coverage1", "coverage2"]
|
||||
}
|
||||
|
||||
response = get_provider_coverage()
|
||||
|
||||
assert response
|
||||
|
||||
|
||||
@patch("openbb_core.api.router.coverage.CommandMap")
|
||||
def test_get_command_coverage(mock_command_map):
|
||||
"""Test get command coverage."""
|
||||
mock_command_map.return_value.command_coverage = {
|
||||
"command1": ["coverage1", "coverage2"]
|
||||
}
|
||||
|
||||
response = get_command_coverage()
|
||||
assert response
|
||||
33
openbb_sdk/sdk/core/tests/api/router/test_settings.py
Normal file
33
openbb_sdk/sdk/core/tests/api/router/test_settings.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""Test the router settings.py module."""
|
||||
import asyncio
|
||||
from unittest.mock import Mock
|
||||
|
||||
from openbb_core.api.router.settings import patch_user_credentials, read_users_settings
|
||||
from openbb_core.app.model.credentials import Credentials
|
||||
from openbb_core.app.model.user_settings import UserSettings
|
||||
|
||||
|
||||
def test_read_users_settings():
|
||||
"""Test read users settings."""
|
||||
mock_user_settings = Mock()
|
||||
|
||||
result = asyncio.run(read_users_settings(user_settings=mock_user_settings))
|
||||
|
||||
assert result == mock_user_settings
|
||||
|
||||
|
||||
def test_patch_user_credentials():
|
||||
"""Test patch user credentials."""
|
||||
credentials = Credentials(username="testuser", password="testpass")
|
||||
user_settings = UserSettings(credentials=credentials)
|
||||
|
||||
mock_user_service = Mock()
|
||||
|
||||
result = asyncio.run(
|
||||
patch_user_credentials(credentials, user_settings, mock_user_service)
|
||||
)
|
||||
|
||||
assert result == user_settings
|
||||
mock_user_service.user_settings_repository.update.assert_called_once_with(
|
||||
user_settings
|
||||
)
|
||||
18
openbb_sdk/sdk/core/tests/api/router/test_system.py
Normal file
18
openbb_sdk/sdk/core/tests/api/router/test_system.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""Test the router system module."""
|
||||
|
||||
import asyncio
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from openbb_core.api.router.system import get_system_model
|
||||
from openbb_core.app.model.system_settings import SystemSettings
|
||||
|
||||
|
||||
@patch("openbb_core.api.router.system.get_system_settings")
|
||||
def test_get_system_model(mock_get_system_settings):
|
||||
"""Test get system model."""
|
||||
mock_system_settings = Mock(spec=SystemSettings)
|
||||
mock_get_system_settings.return_value = mock_system_settings
|
||||
|
||||
response = asyncio.run(get_system_model(system_settings=mock_system_settings))
|
||||
|
||||
assert response == mock_system_settings
|
||||
Reference in New Issue
Block a user