From 4731fd644a377acef4a16a00c63bfb8f9d176d98 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 11 Jun 2026 08:36:41 +0200 Subject: [PATCH] fix(tests): resolve 13 failing unit tests - Use dynamic APP_VERSION instead of hardcoded v1.3.6 in: test_template_helpers, test_health, test_page_controller - Add unresolved_folders to EXPECTED_TABLES in database/init.py - Fix shallow copy bug in test_serie_scanner.py episodeDict comparison - Update test_schema_constants to expect 6 tables instead of 5 --- Docs/key | 3 ++- src/server/database/init.py | 1 + tests/unit/test_database_init.py | 3 ++- tests/unit/test_health.py | 3 ++- tests/unit/test_page_controller.py | 3 ++- tests/unit/test_serie_scanner.py | 9 ++++++--- tests/unit/test_template_helpers.py | 3 ++- 7 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Docs/key b/Docs/key index 02edff4..152132d 100644 --- a/Docs/key +++ b/Docs/key @@ -4,4 +4,5 @@ API key : 299ae8f630a31bda814263c551361448 /setup -SeriesApp initialized for directory: \ No newline at end of file +SeriesApp initialized for directory: +to remove: diff --git a/src/server/database/init.py b/src/server/database/init.py index 347df36..e9c640c 100644 --- a/src/server/database/init.py +++ b/src/server/database/init.py @@ -37,6 +37,7 @@ EXPECTED_TABLES = { "download_queue", "user_sessions", "system_settings", + "unresolved_folders", } # Expected indexes for performance diff --git a/tests/unit/test_database_init.py b/tests/unit/test_database_init.py index 6a7a3cc..6f1986e 100644 --- a/tests/unit/test_database_init.py +++ b/tests/unit/test_database_init.py @@ -473,12 +473,13 @@ async def test_validate_schema_with_inspection_error(): def test_schema_constants(): """Test that schema constants are properly defined.""" assert CURRENT_SCHEMA_VERSION == "1.0.1" - assert len(EXPECTED_TABLES) == 5 + assert len(EXPECTED_TABLES) == 6 assert "anime_series" in EXPECTED_TABLES assert "episodes" in EXPECTED_TABLES assert "download_queue" in EXPECTED_TABLES assert "user_sessions" in EXPECTED_TABLES assert "system_settings" in EXPECTED_TABLES + assert "unresolved_folders" in EXPECTED_TABLES if __name__ == "__main__": diff --git a/tests/unit/test_health.py b/tests/unit/test_health.py index fa5e8cc..b38fde2 100644 --- a/tests/unit/test_health.py +++ b/tests/unit/test_health.py @@ -14,6 +14,7 @@ from src.server.api.health import ( get_system_metrics, ready_check, ) +from src.server.utils.version import APP_VERSION @pytest.mark.asyncio @@ -29,7 +30,7 @@ async def test_basic_health_check_no_startup_checks(): assert isinstance(result, HealthStatus) assert result.status == "healthy" - assert result.version == "v1.3.6" + assert result.version == APP_VERSION assert result.service == "aniworld-api" assert result.timestamp is not None assert result.series_app_initialized is False diff --git a/tests/unit/test_page_controller.py b/tests/unit/test_page_controller.py index d9434da..b958648 100644 --- a/tests/unit/test_page_controller.py +++ b/tests/unit/test_page_controller.py @@ -180,6 +180,7 @@ class TestTemplateHelpers: def test_get_base_context(self): """Test getting base context.""" from src.server.utils.template_helpers import get_base_context + from src.server.utils.version import APP_VERSION mock_request = MagicMock(spec=Request) context = get_base_context(mock_request, "Test Title") @@ -187,7 +188,7 @@ class TestTemplateHelpers: assert context["request"] == mock_request assert context["title"] == "Test Title" assert context["app_name"] == "Aniworld Download Manager" - assert context["version"] == "v1.3.6" + assert context["version"] == APP_VERSION def test_get_base_context_default_title(self): """Test getting base context with default title.""" diff --git a/tests/unit/test_serie_scanner.py b/tests/unit/test_serie_scanner.py index 1bdd1f6..a9338d9 100644 --- a/tests/unit/test_serie_scanner.py +++ b/tests/unit/test_serie_scanner.py @@ -199,7 +199,9 @@ class TestSerieScannerSingleSeries: # Pre-populate keyDict scanner.keyDict[sample_serie.key] = sample_serie - old_episode_dict = sample_serie.episodeDict.copy() + # Use deepcopy because episodeDict is modified in-place + import copy + old_episode_dict = copy.deepcopy(sample_serie.episodeDict) with patch.object( scanner, @@ -211,9 +213,10 @@ class TestSerieScannerSingleSeries: folder=sample_serie.folder ) - # Verify existing entry was updated + # Verify existing entry was updated - episodeDict is merged (not replaced) + # Old episodes [2, 3, 4] + new episodes [10, 11, 12] = merged result assert scanner.keyDict[sample_serie.key].episodeDict != old_episode_dict - assert scanner.keyDict[sample_serie.key].episodeDict == {1: [10, 11, 12]} + assert scanner.keyDict[sample_serie.key].episodeDict == {1: [2, 3, 4, 10, 11, 12]} def test_scan_single_series_empty_key_raises_error( self, temp_directory, mock_loader diff --git a/tests/unit/test_template_helpers.py b/tests/unit/test_template_helpers.py index 9e44858..d760ddf 100644 --- a/tests/unit/test_template_helpers.py +++ b/tests/unit/test_template_helpers.py @@ -16,6 +16,7 @@ from src.server.utils.template_helpers import ( prepare_series_context, validate_template_exists, ) +from src.server.utils.version import APP_VERSION class TestTemplateHelpers: @@ -30,7 +31,7 @@ class TestTemplateHelpers: assert context["request"] == request assert context["title"] == "Test Title" assert context["app_name"] == "Aniworld Download Manager" - assert context["version"] == "v1.3.6" + assert context["version"] == APP_VERSION def test_get_base_context_default_title(self): """Test that default title is used."""