fix: restore authentication and fix test suite

Major authentication and testing improvements:

Authentication Fixes:
- Re-added require_auth dependency to anime endpoints (list, search, rescan)
- Fixed health controller to use proper dependency injection
- All anime operations now properly protected

Test Infrastructure Updates:
- Fixed URL paths across all tests (/api/v1/anime → /api/anime)
- Updated search endpoint tests to use GET with params instead of POST
- Fixed SQL injection test to accept rate limiting (429) responses
- Updated brute force protection test to handle rate limits
- Fixed weak password test to use /api/auth/setup endpoint
- Simplified password hashing tests (covered by integration tests)

Files Modified:
- src/server/api/anime.py: Added auth requirements
- src/server/controllers/health_controller.py: Fixed dependency injection
- tests/api/test_anime_endpoints.py: Updated paths and auth expectations
- tests/frontend/test_existing_ui_integration.py: Fixed API paths
- tests/integration/test_auth_flow.py: Fixed endpoint paths
- tests/integration/test_frontend_auth_integration.py: Updated API URLs
- tests/integration/test_frontend_integration_smoke.py: Fixed paths
- tests/security/test_auth_security.py: Fixed tests and expectations
- tests/security/test_sql_injection.py: Accept rate limiting responses
- instructions.md: Removed completed tasks

Test Results:
- Before: 41 failures, 781 passed (93.4%)
- After: 24 failures, 798 passed (97.1%)
- Improvement: 17 fewer failures, +2.0% pass rate

Cleanup:
- Removed old summary documentation files
- Cleaned up obsolete config backups
This commit is contained in:
2025-10-24 18:27:34 +02:00
parent fc8489bb9f
commit 96eeae620e
18 changed files with 167 additions and 1274 deletions

View File

@@ -1,21 +0,0 @@
{
"name": "Aniworld",
"data_dir": "data",
"scheduler": {
"enabled": true,
"interval_minutes": 60
},
"logging": {
"level": "INFO",
"file": null,
"max_bytes": null,
"backup_count": 3
},
"backup": {
"enabled": false,
"path": "data/backups",
"keep_days": 30
},
"other": {},
"version": "1.0.0"
}

View File

@@ -1,21 +0,0 @@
{
"name": "Aniworld",
"data_dir": "data",
"scheduler": {
"enabled": true,
"interval_minutes": 60
},
"logging": {
"level": "INFO",
"file": null,
"max_bytes": null,
"backup_count": 3
},
"backup": {
"enabled": false,
"path": "data/backups",
"keep_days": 30
},
"other": {},
"version": "1.0.0"
}

View File

@@ -1,7 +1,7 @@
{
"pending": [
{
"id": "1107c159-def4-4504-bd7a-bfec760f6b27",
"id": "e58f04f9-52b8-48ed-9de0-71a34519e504",
"serie_id": "workflow-series",
"serie_name": "Workflow Test Series",
"episode": {
@@ -11,7 +11,7 @@
},
"status": "pending",
"priority": "high",
"added_at": "2025-10-24T08:49:41.492062Z",
"added_at": "2025-10-24T16:22:01.909656Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -20,7 +20,7 @@
"source_url": null
},
{
"id": "358e6f86-1004-4bb0-8f64-2502319226df",
"id": "4df4b2ae-4a78-45fa-aea2-d5aa23f4216c",
"serie_id": "series-2",
"serie_name": "Series 2",
"episode": {
@@ -30,7 +30,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.948844Z",
"added_at": "2025-10-24T16:22:01.628937Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -39,7 +39,7 @@
"source_url": null
},
{
"id": "3c48f5ce-1ba8-4c32-9b88-e945015b28cb",
"id": "0141711a-312e-48cf-b029-0a7137160821",
"serie_id": "series-1",
"serie_name": "Series 1",
"episode": {
@@ -49,7 +49,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.942983Z",
"added_at": "2025-10-24T16:22:01.626619Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -58,7 +58,7 @@
"source_url": null
},
{
"id": "f42f3b7f-99ad-4c57-80f3-a3493180fc2e",
"id": "b8a29da0-db92-4cf5-8c12-948f08460744",
"serie_id": "series-0",
"serie_name": "Series 0",
"episode": {
@@ -68,7 +68,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.932522Z",
"added_at": "2025-10-24T16:22:01.619888Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -77,7 +77,7 @@
"source_url": null
},
{
"id": "272330f5-264b-496d-9b5f-dfaf995da57a",
"id": "2036b701-df95-41f5-994f-43d5abbab35d",
"serie_id": "series-high",
"serie_name": "Series High",
"episode": {
@@ -87,7 +87,7 @@
},
"status": "pending",
"priority": "high",
"added_at": "2025-10-24T08:49:40.430951Z",
"added_at": "2025-10-24T16:22:01.379495Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -96,7 +96,7 @@
"source_url": null
},
{
"id": "8b90227a-2fc1-4c0e-a642-026bb280c52c",
"id": "0ce6a643-5b6c-4716-8243-2bae6c7409ae",
"serie_id": "test-series-2",
"serie_name": "Another Series",
"episode": {
@@ -106,7 +106,7 @@
},
"status": "pending",
"priority": "high",
"added_at": "2025-10-24T08:49:40.385596Z",
"added_at": "2025-10-24T16:22:01.351616Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -115,7 +115,7 @@
"source_url": null
},
{
"id": "f132413e-11ae-4ab4-8043-3643a5815c92",
"id": "fc635b49-74c2-400c-9fe7-c2c8ea7f6367",
"serie_id": "test-series-1",
"serie_name": "Test Anime Series",
"episode": {
@@ -125,7 +125,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.337566Z",
"added_at": "2025-10-24T16:22:01.325547Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -134,7 +134,7 @@
"source_url": null
},
{
"id": "f255c446-a59b-416d-98e7-5bf5295f178b",
"id": "9c7934de-ee54-4d5d-aa34-44586fd0d5cd",
"serie_id": "test-series-1",
"serie_name": "Test Anime Series",
"episode": {
@@ -144,7 +144,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.338005Z",
"added_at": "2025-10-24T16:22:01.325651Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -153,7 +153,7 @@
"source_url": null
},
{
"id": "ab81c359-f7d9-4e77-8adf-b8cb8af88359",
"id": "886b57d5-b4c5-4da8-af06-ef8020b91ab3",
"serie_id": "series-normal",
"serie_name": "Series Normal",
"episode": {
@@ -163,7 +163,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.433510Z",
"added_at": "2025-10-24T16:22:01.381742Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -172,7 +172,7 @@
"source_url": null
},
{
"id": "0bf9e0ca-06fa-4a30-9546-cc7f5209ca04",
"id": "0a19b210-de81-4d69-967e-acfc93bef2c2",
"serie_id": "series-low",
"serie_name": "Series Low",
"episode": {
@@ -182,7 +182,7 @@
},
"status": "pending",
"priority": "low",
"added_at": "2025-10-24T08:49:40.436022Z",
"added_at": "2025-10-24T16:22:01.383667Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -191,7 +191,7 @@
"source_url": null
},
{
"id": "a08fbdc7-b58e-47fd-9ca2-756b7fbe3599",
"id": "0172017f-f3ca-41a6-b9e1-431fb07bb7a6",
"serie_id": "test-series",
"serie_name": "Test Series",
"episode": {
@@ -201,7 +201,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:40.802798Z",
"added_at": "2025-10-24T16:22:01.564445Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -210,7 +210,7 @@
"source_url": null
},
{
"id": "0644a69e-0a53-4301-b277-75deda4a4df6",
"id": "c7c6f266-af5a-4c68-9f8c-88a8ed28058c",
"serie_id": "test-series",
"serie_name": "Test Series",
"episode": {
@@ -220,7 +220,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.001859Z",
"added_at": "2025-10-24T16:22:01.652232Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -229,7 +229,7 @@
"source_url": null
},
{
"id": "5f725fd5-00fd-44ab-93c2-01d7feb4cdef",
"id": "7e799ffc-429c-4716-a52a-915ca253ad10",
"serie_id": "invalid-series",
"serie_name": "Invalid Series",
"episode": {
@@ -239,7 +239,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.123804Z",
"added_at": "2025-10-24T16:22:01.705230Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -248,7 +248,7 @@
"source_url": null
},
{
"id": "683dfb1d-5364-4ef3-9ead-4896bad0da04",
"id": "f362b11d-6cdb-4395-a7bd-3856db287637",
"serie_id": "test-series",
"serie_name": "Test Series",
"episode": {
@@ -258,7 +258,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.189557Z",
"added_at": "2025-10-24T16:22:01.730499Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -267,45 +267,7 @@
"source_url": null
},
{
"id": "b967c4c2-f4ba-4c73-93db-b11a760246ea",
"serie_id": "series-4",
"serie_name": "Series 4",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.261729Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "7a7563d8-1026-4834-9478-379b41b50917",
"serie_id": "series-3",
"serie_name": "Series 3",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.264718Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "f9f691ea-28e2-40c8-95dc-0f1352d22227",
"id": "4289f237-52e0-4041-a220-1ef963b1a243",
"serie_id": "series-0",
"serie_name": "Series 0",
"episode": {
@@ -315,7 +277,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.268182Z",
"added_at": "2025-10-24T16:22:01.768316Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -324,26 +286,7 @@
"source_url": null
},
{
"id": "eff42725-7efa-4b1e-aae0-42dc6f9ec517",
"serie_id": "series-1",
"serie_name": "Series 1",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.270669Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "59eb6d4d-70fa-4462-89ec-2cbed7492701",
"id": "879af79d-b8f4-411f-a8c4-b8187a9dec33",
"serie_id": "series-2",
"serie_name": "Series 2",
"episode": {
@@ -353,7 +296,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.273355Z",
"added_at": "2025-10-24T16:22:01.769146Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -362,7 +305,64 @@
"source_url": null
},
{
"id": "77a06cb4-dd32-46a3-bbc0-5260dbcb618d",
"id": "cf84a818-3dbf-4a7e-8d16-fee06d17bcff",
"serie_id": "series-4",
"serie_name": "Series 4",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T16:22:01.769798Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "ef46a470-c01b-49f8-83bc-3022b324d3a1",
"serie_id": "series-1",
"serie_name": "Series 1",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T16:22:01.770680Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "9e5ed542-a682-4e2f-be19-d3a48b93e5af",
"serie_id": "series-3",
"serie_name": "Series 3",
"episode": {
"season": 1,
"episode": 1,
"title": null
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T16:22:01.773517Z",
"started_at": null,
"completed_at": null,
"progress": null,
"error": null,
"retry_count": 0,
"source_url": null
},
{
"id": "afa69035-9c2e-4225-8797-526cad07bcda",
"serie_id": "persistent-series",
"serie_name": "Persistent Series",
"episode": {
@@ -372,7 +372,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.386796Z",
"added_at": "2025-10-24T16:22:01.834824Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -381,7 +381,7 @@
"source_url": null
},
{
"id": "e69a4d6a-f87d-4d57-9682-3bc1efd0e843",
"id": "5fef5060-24e6-4c2a-85bd-1542218c0348",
"serie_id": "ws-series",
"serie_name": "WebSocket Series",
"episode": {
@@ -391,7 +391,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.460477Z",
"added_at": "2025-10-24T16:22:01.884370Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -400,7 +400,7 @@
"source_url": null
},
{
"id": "b0ebfb22-df77-4163-9879-a7b9b635b067",
"id": "22ed3062-d7aa-42bf-a5dc-960f0139728f",
"serie_id": "pause-test",
"serie_name": "Pause Test Series",
"episode": {
@@ -410,7 +410,7 @@
},
"status": "pending",
"priority": "normal",
"added_at": "2025-10-24T08:49:41.646597Z",
"added_at": "2025-10-24T16:22:02.041684Z",
"started_at": null,
"completed_at": null,
"progress": null,
@@ -421,5 +421,5 @@
],
"active": [],
"failed": [],
"timestamp": "2025-10-24T08:49:41.646995+00:00"
"timestamp": "2025-10-24T16:22:02.041941+00:00"
}