mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-10 11:21:12 +00:00
Test journal_service
This commit is contained in:
@@ -22,8 +22,11 @@ from pymongo.mongo_client import MongoClient
|
||||
|
||||
|
||||
class JournalService:
|
||||
"""Journal service."""
|
||||
|
||||
@staticmethod
|
||||
def valid_client(mongodb_client: Optional[MongoClient] = None) -> bool:
|
||||
"""Check if the client is valid."""
|
||||
if mongodb_client is None:
|
||||
return False
|
||||
|
||||
@@ -41,6 +44,7 @@ class JournalService:
|
||||
mongodb_client: Optional[MongoClient] = None,
|
||||
journal_entry_repository: Optional[AbstractJournalEntryRepository] = None,
|
||||
) -> AbstractJournalEntryRepository:
|
||||
"""Build journal entry repository."""
|
||||
if journal_entry_repository:
|
||||
pass
|
||||
elif mongodb_client and valid_client:
|
||||
@@ -57,6 +61,7 @@ class JournalService:
|
||||
mongodb_client: Optional[MongoClient] = None,
|
||||
journal_repository: Optional[AbstractJournalRepository] = None,
|
||||
) -> AbstractJournalRepository:
|
||||
"""Build journal repository."""
|
||||
if journal_repository:
|
||||
pass
|
||||
elif mongodb_client and valid_client:
|
||||
|
||||
103
openbb_sdk/sdk/core/tests/test_service_journal_service.py
Normal file
103
openbb_sdk/sdk/core/tests/test_service_journal_service.py
Normal file
@@ -0,0 +1,103 @@
|
||||
"""Test the ../openbb_core/app/service/journal_service.py module."""
|
||||
# pylint: disable=redefined-outer-name
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
from openbb_core.app.service.journal_service import (
|
||||
AbstractJournalEntryRepository,
|
||||
InMemoryJournalEntryRepository,
|
||||
JournalService,
|
||||
MongoClient,
|
||||
MongoDBJournalEntryRepository,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def journal_service():
|
||||
"""Fixture for journal service."""
|
||||
return JournalService()
|
||||
|
||||
|
||||
def test_journal_service_init(journal_service):
|
||||
"""Test journal service init."""
|
||||
assert journal_service
|
||||
|
||||
|
||||
def test_invalid_client(journal_service):
|
||||
"""Test valid client."""
|
||||
assert not journal_service.valid_client()
|
||||
|
||||
|
||||
def test_build_journal_entry_repository_with_given_repository():
|
||||
"""Test build with repository."""
|
||||
mock_repository = MagicMock(spec=AbstractJournalEntryRepository)
|
||||
result = JournalService.build_journal_entry_repository(
|
||||
valid_client=True, journal_entry_repository=mock_repository
|
||||
)
|
||||
|
||||
assert result == mock_repository
|
||||
|
||||
|
||||
def test_build_journal_entry_repository_with_mongodb_client():
|
||||
"""Test build with mongodb client."""
|
||||
mock_client = MagicMock(spec=MongoClient)
|
||||
result = JournalService.build_journal_entry_repository(
|
||||
valid_client=True, mongodb_client=mock_client
|
||||
)
|
||||
|
||||
assert isinstance(result, MongoDBJournalEntryRepository)
|
||||
|
||||
|
||||
def test_build_journal_entry_repository_memory():
|
||||
"""Test build with in-memory access."""
|
||||
result = JournalService.build_journal_entry_repository(valid_client=True)
|
||||
|
||||
assert isinstance(result, InMemoryJournalEntryRepository)
|
||||
|
||||
|
||||
def test_build_journal_repository_with_given_repository():
|
||||
"""Test build with repository."""
|
||||
mock_repository = MagicMock(spec=AbstractJournalEntryRepository)
|
||||
result = JournalService.build_journal_entry_repository(
|
||||
valid_client=True, journal_entry_repository=mock_repository
|
||||
)
|
||||
|
||||
assert result == mock_repository
|
||||
|
||||
|
||||
def test_build_journal_repository_with_mongodb_client():
|
||||
"""Test build with mongodb client."""
|
||||
mock_client = MagicMock(spec=MongoClient)
|
||||
result = JournalService.build_journal_entry_repository(
|
||||
valid_client=True, mongodb_client=mock_client
|
||||
)
|
||||
|
||||
assert isinstance(result, MongoDBJournalEntryRepository)
|
||||
|
||||
|
||||
def test_build_journal_repository_memory():
|
||||
"""Test build with in-memory access."""
|
||||
result = JournalService.build_journal_entry_repository(valid_client=True)
|
||||
|
||||
assert isinstance(result, InMemoryJournalEntryRepository)
|
||||
|
||||
|
||||
def test_journal_service_mongodb_client(journal_service):
|
||||
"""Test mongodb client."""
|
||||
assert journal_service.mongodb_client is None
|
||||
|
||||
|
||||
def test_journal_service_journal_entry_repository(journal_service):
|
||||
"""Test journal entry repository."""
|
||||
assert isinstance(
|
||||
journal_service.journal_entry_repository, InMemoryJournalEntryRepository
|
||||
)
|
||||
|
||||
|
||||
def test_journal_service_journal_repository(journal_service):
|
||||
"""Test journal repository."""
|
||||
assert journal_service.journal_repository
|
||||
assert isinstance(
|
||||
type(journal_service.journal_repository), type(InMemoryJournalEntryRepository)
|
||||
)
|
||||
Reference in New Issue
Block a user