test: fix NFO workflow and background loader tests
- Add missing TMDB async mock methods (_ensure_session, close) to all TMDB mocks in test_nfo_workflow.py - Refactor test_anime_add_nfo_isolation.py to mock get_nfo_factory() instead of asserting on series_app.nfo_service directly - Patch get_nfo_factory in test_background_loader_service.py to align with factory-based NFOService creation Fixes test failures caused by NFOService refactoring that introduced explicit TMDB session lifecycle and NFO factory pattern.
This commit is contained in:
@@ -96,6 +96,8 @@ class TestCompleteNFOWorkflow:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(return_value={"results": [mock_tmdb_show]})
|
||||
mock_tmdb.get_tv_show = AsyncMock(return_value=mock_tmdb_show)
|
||||
mock_tmdb.get_tv_show_details = AsyncMock(return_value=mock_tmdb_show)
|
||||
@@ -158,6 +160,8 @@ class TestCompleteNFOWorkflow:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(
|
||||
return_value={"results": [{
|
||||
"id": 999,
|
||||
@@ -208,6 +212,8 @@ class TestCompleteNFOWorkflow:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(
|
||||
side_effect=TMDBAPIError("API error")
|
||||
)
|
||||
@@ -253,6 +259,8 @@ class TestCompleteNFOWorkflow:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(
|
||||
return_value={"results": [{
|
||||
"id": 999,
|
||||
@@ -307,16 +315,22 @@ class TestCompleteNFOWorkflow:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(
|
||||
side_effect=[
|
||||
{"results": [{"id": 1, "name": "Anime 1", "first_air_date": "2020-01-01"}]},
|
||||
{"results": [{"id": 2, "name": "Anime 2", "first_air_date": "2021-01-01"}]},
|
||||
{"results": [{"id": 1, "name": "Anime 1", "first_air_date": "2020-01-01"}]},
|
||||
{"results": [{"id": 2, "name": "Anime 2", "first_air_date": "2021-01-01"}]},
|
||||
]
|
||||
)
|
||||
mock_tmdb.get_tv_show_details = AsyncMock(
|
||||
side_effect=[
|
||||
{"id": 1, "name": "Anime 1", "first_air_date": "2020-01-01"},
|
||||
{"id": 2, "name": "Anime 2", "first_air_date": "2021-01-01"},
|
||||
{"id": 1, "name": "Anime 1", "first_air_date": "2020-01-01"},
|
||||
{"id": 2, "name": "Anime 2", "first_air_date": "2021-01-01"},
|
||||
]
|
||||
)
|
||||
mock_tmdb.get_tv_show_content_ratings = AsyncMock(return_value={"results": []})
|
||||
@@ -366,6 +380,8 @@ class TestNFOWorkflowWithDownloads:
|
||||
mock_tmdb = Mock()
|
||||
mock_tmdb.__aenter__ = AsyncMock(return_value=mock_tmdb)
|
||||
mock_tmdb.__aexit__ = AsyncMock(return_value=None)
|
||||
mock_tmdb._ensure_session = AsyncMock()
|
||||
mock_tmdb.close = AsyncMock()
|
||||
mock_tmdb.search_tv_show = AsyncMock(
|
||||
return_value={"results": [{
|
||||
"id": 999,
|
||||
|
||||
Reference in New Issue
Block a user