Task 4.2: Update Download API Endpoints to Use Key

- Updated DownloadRequest and DownloadItem models with comprehensive
  docstrings explaining serie_id (key as primary identifier) vs
  serie_folder (filesystem metadata)
- Updated add_to_queue() endpoint docstring to document request parameters
- Updated all test files to include required serie_folder field:
  - tests/api/test_download_endpoints.py
  - tests/api/test_queue_features.py
  - tests/frontend/test_existing_ui_integration.py
  - tests/integration/test_download_flow.py
- Updated infrastructure.md with Download Queue request/response models
- All 869 tests pass

This is part of the Series Identifier Standardization effort (Phase 4.2)
to ensure key is used as the primary identifier throughout the codebase.
This commit is contained in:
2025-11-27 19:33:06 +01:00
parent da4973829e
commit 589141e9aa
8 changed files with 80 additions and 46 deletions

View File

@@ -133,6 +133,7 @@ class TestDownloadFlowEndToEnd:
"/api/queue/add",
json={
"serie_id": "test-series-1",
"serie_folder": "Test Anime Series (2024)",
"serie_name": "Test Anime Series",
"episodes": [
{"season": 1, "episode": 1, "title": "Episode 1"},
@@ -158,6 +159,7 @@ class TestDownloadFlowEndToEnd:
"/api/queue/add",
json={
"serie_id": "test-series-2",
"serie_folder": "Another Series (2024)",
"serie_name": "Another Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "high"
@@ -194,6 +196,7 @@ class TestDownloadFlowEndToEnd:
"/api/queue/add",
json={
"serie_id": f"series-{priority}",
"serie_folder": f"Series {priority.title()} (2024)",
"serie_name": f"Series {priority.title()}",
"episodes": [{"season": 1, "episode": 1}],
"priority": priority
@@ -208,6 +211,7 @@ class TestDownloadFlowEndToEnd:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [],
"priority": "normal"
@@ -224,6 +228,7 @@ class TestDownloadFlowEndToEnd:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "invalid"
@@ -267,6 +272,7 @@ class TestQueueItemOperations:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -301,6 +307,7 @@ class TestDownloadProgressTracking:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -358,6 +365,7 @@ class TestErrorHandlingAndRetries:
"/api/queue/add",
json={
"serie_id": "invalid-series",
"serie_folder": "Invalid Series (2024)",
"serie_name": "Invalid Series",
"episodes": [{"season": 99, "episode": 99}],
"priority": "normal"
@@ -374,6 +382,7 @@ class TestErrorHandlingAndRetries:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -412,6 +421,7 @@ class TestAuthenticationRequirements:
"/api/queue/add",
json={
"serie_id": "test-series",
"serie_folder": "Test Series (2024)",
"serie_name": "Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -444,6 +454,7 @@ class TestConcurrentOperations:
"/api/queue/add",
json={
"serie_id": f"series-{i}",
"serie_folder": f"Series {i} (2024)",
"serie_name": f"Series {i}",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -488,6 +499,7 @@ class TestQueuePersistence:
"/api/queue/add",
json={
"serie_id": "persistent-series",
"serie_folder": "Persistent Series (2024)",
"serie_name": "Persistent Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -524,6 +536,7 @@ class TestWebSocketIntegrationWithDownloads:
"/api/queue/add",
json={
"serie_id": "ws-series",
"serie_folder": "WebSocket Series (2024)",
"serie_name": "WebSocket Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "normal"
@@ -546,6 +559,7 @@ class TestCompleteDownloadWorkflow:
"/api/queue/add",
json={
"serie_id": "workflow-series",
"serie_folder": "Workflow Test Series (2024)",
"serie_name": "Workflow Test Series",
"episodes": [{"season": 1, "episode": 1}],
"priority": "high"