test: move recommendation database retrieval coverage to unit tests (#38921)

This commit is contained in:
Asuka Minato 2026-07-15 12:44:36 +09:00 committed by GitHub
parent c77c06c1e9
commit 65e676b880
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 43 additions and 27 deletions

View File

@ -1,6 +1,6 @@
from __future__ import annotations
from unittest.mock import MagicMock, patch
from unittest.mock import patch
from uuid import uuid4
from flask import Flask
@ -8,7 +8,6 @@ from sqlalchemy.orm import Session
from models.model import App, RecommendedApp, Site
from services.recommend_app.database.database_retrieval import DatabaseRecommendAppRetrieval
from services.recommend_app.recommend_app_type import RecommendAppType
def _create_app(db_session: Session, *, tenant_id: str, is_public: bool = True) -> App:
@ -72,31 +71,6 @@ def _create_recommended_app(
return rec
class TestDatabaseRecommendAppRetrieval:
def test_get_type(self):
assert DatabaseRecommendAppRetrieval().get_type() == RecommendAppType.DATABASE
def test_get_recommended_apps_delegates(self):
with patch.object(
DatabaseRecommendAppRetrieval,
"fetch_recommended_apps_from_db",
return_value={"recommended_apps": [], "categories": []},
) as mock_fetch:
result = DatabaseRecommendAppRetrieval().get_recommended_apps_and_categories("en-US", session=MagicMock())
mock_fetch.assert_called_once()
assert result == {"recommended_apps": [], "categories": []}
def test_get_recommend_app_detail_delegates(self):
with patch.object(
DatabaseRecommendAppRetrieval,
"fetch_recommended_app_detail_from_db",
return_value={"id": "app-1"},
) as mock_fetch:
result = DatabaseRecommendAppRetrieval().get_recommend_app_detail("app-1", session=MagicMock())
mock_fetch.assert_called_once()
assert result == {"id": "app-1"}
class TestFetchRecommendedAppsFromDb:
def test_returns_apps_and_sorted_categories(
self, flask_app_with_containers: Flask, db_session_with_containers: Session

View File

@ -0,0 +1,42 @@
"""Unit tests for database recommendation retrieval delegation."""
from unittest.mock import patch
from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session
from services.recommend_app.database.database_retrieval import DatabaseRecommendAppRetrieval
from services.recommend_app.recommend_app_type import RecommendAppType
class TestDatabaseRecommendAppRetrieval:
def test_get_type(self) -> None:
assert DatabaseRecommendAppRetrieval().get_type() == RecommendAppType.DATABASE
def test_get_recommended_apps_delegates(self, sqlite_engine: Engine) -> None:
with (
Session(sqlite_engine) as session,
patch.object(
DatabaseRecommendAppRetrieval,
"fetch_recommended_apps_from_db",
return_value={"recommended_apps": [], "categories": []},
) as mock_fetch,
):
result = DatabaseRecommendAppRetrieval().get_recommended_apps_and_categories("en-US", session=session)
mock_fetch.assert_called_once_with("en-US", session=session)
assert result == {"recommended_apps": [], "categories": []}
def test_get_recommend_app_detail_delegates(self, sqlite_engine: Engine) -> None:
with (
Session(sqlite_engine) as session,
patch.object(
DatabaseRecommendAppRetrieval,
"fetch_recommended_app_detail_from_db",
return_value={"id": "app-1"},
) as mock_fetch,
):
result = DatabaseRecommendAppRetrieval().get_recommend_app_detail("app-1", session=session)
mock_fetch.assert_called_once_with("app-1", session=session)
assert result == {"id": "app-1"}