Test journal_service

This commit is contained in:
Igor Radovanovic
2023-07-27 14:05:19 +02:00
parent 2fcb23b36d
commit d0ec9d8650
2 changed files with 108 additions and 0 deletions

View File

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

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