Test router coverage, system, and settings.

This commit is contained in:
Igor Radovanovic
2023-07-28 12:02:15 +02:00
parent 4f86b6c8f8
commit a7e1d2bc1f
5 changed files with 85 additions and 5 deletions

View File

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

View File

@@ -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)

View 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

View 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
)

View 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