Refactor trigger_rescan to use anime_service

- Use anime_service.rescan() instead of direct trigger_rescan import
- Change Optional[Any] to Optional[Dict[str, Any]] in ConfigUpdate for better type hints
- Add ValidationError handling in ConfigUpdate.apply_to
- Update tests to match new implementation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-06-27 15:46:22 +02:00
parent ad2320dbbb
commit 4687a06374
8 changed files with 2244 additions and 463 deletions

View File

@@ -1881,22 +1881,22 @@ storage = function () {
window.output = {};
</script>
<script type="text/javascript">
window.output["suite"] = [1,2,3,4,[],[1,0,673],[],[[5,0,6,[],[1,210,22],[]]],[],[1,1,0,0]];
window.output["suite"] = [1,2,3,4,[],[0,0,211037],[],[[5,0,6,[],[0,204,60,7],[]],[8,0,9,[],[0,698,6065,10],[]],[11,0,12,[],[0,6769,96065,10],[]],[13,0,14,[],[0,102840,6058,15],[]],[16,0,17,[],[0,108903,96070,10],[]],[18,0,19,[],[0,204977,6055,15],[]]],[],[6,0,6,0]];
</script>
<script type="text/javascript">
window.output["strings"] = [];
</script>
<script type="text/javascript">
window.output["strings"] = window.output["strings"].concat(["*","*Download","*/home/lukas/Volume/repo/Aniworld/tests/robot/api/download.robot","*tests/robot/api/download.robot","*<p>Download queue API tests for Aniworld. Covers status, add, start/stop/pause/resume, clear, retry, and remove.\x3c/p>","*Retry Failed Item","*<p>Retry a failed download item.\x3c/p>"]);
window.output["strings"] = window.output["strings"].concat(["*","*Scheduler","*/home/lukas/Volume/repo/Aniworld/tests/robot/api/scheduler.robot","*tests/robot/api/scheduler.robot","*<p>Scheduler API tests for Aniworld. Covers get config, update config, trigger rescan, and validation.\x3c/p>","*Get Scheduler Config","*<p>Retrieve the current scheduler configuration and runtime status.\x3c/p>","*Setup failed:\nLogin failed with 401: invalid credentials","*Update Scheduler Config","*<p>Update scheduler settings and verify they are persisted.\x3c/p>","*Setup failed:\nLogin failed with 429: Too many failed attempts - temporarily locked out","*Trigger Manual Rescan","*<p>Manually trigger a scheduled rescan.\x3c/p>","*Invalid Schedule Time","*<p>Verify that malformed schedule_time is rejected.\x3c/p>","*Setup failed:\nLogin failed with 429: Too many authentication attempts, try again later. IP lockout","*Invalid Schedule Days","*<p>Verify that invalid day abbreviations are rejected.\x3c/p>","*Empty Schedule Days","*<p>Verify that empty schedule_days is handled.\x3c/p>"]);
</script>
<script type="text/javascript">
window.output["stats"] = [[{"elapsed":"00:00:00","fail":0,"label":"All Tests","pass":1,"skip":0}],[],[{"elapsed":"00:00:01","fail":0,"id":"s1","label":"Download","name":"Download","pass":1,"skip":0}]];
window.output["stats"] = [[{"elapsed":"00:03:30","fail":6,"label":"All Tests","pass":0,"skip":0}],[],[{"elapsed":"00:03:31","fail":6,"id":"s1","label":"Scheduler","name":"Scheduler","pass":0,"skip":0}]];
</script>
<script type="text/javascript">
window.output["baseMillis"] = 1782492685067;
window.output["baseMillis"] = 1782567614897;
</script>
<script type="text/javascript">
window.output["generated"] = 691;
window.output["generated"] = 211054;
</script>
<script type="text/javascript">
window.output["expand_keywords"] = null;