backup
This commit is contained in:
92
tests/robot/api/scheduler.robot
Normal file
92
tests/robot/api/scheduler.robot
Normal file
@@ -0,0 +1,92 @@
|
||||
*** Settings ***
|
||||
Documentation Scheduler API tests for Aniworld.
|
||||
... Covers get config, update config, trigger rescan, and validation.
|
||||
|
||||
Resource ${CURDIR}/../resources/common.resource
|
||||
Resource ${CURDIR}/../resources/api_keywords.resource
|
||||
|
||||
Test Setup Run Keywords
|
||||
... Create Anonymous Session
|
||||
... AND Setup Master Password
|
||||
... AND Create Authenticated Session
|
||||
|
||||
Test Teardown Delete All Sessions
|
||||
|
||||
*** Test Cases ***
|
||||
# ---------------------------------------------------------------------------
|
||||
# Get / Update Config
|
||||
# ---------------------------------------------------------------------------
|
||||
Get Scheduler Config
|
||||
[Documentation] Retrieve the current scheduler configuration and runtime status.
|
||||
${resp}= Get Scheduler Config
|
||||
Response Should Have Status ${resp} 200
|
||||
Response Should Contain Keys ${resp} success config status
|
||||
${config_keys}= Create List enabled interval_minutes schedule_time schedule_days auto_download_after_rescan
|
||||
FOR ${key} IN @{config_keys}
|
||||
Response Should Contain Key ${resp} $.config.${key}
|
||||
END
|
||||
${status_keys}= Create List is_running next_run last_run scan_in_progress
|
||||
FOR ${key} IN @{status_keys}
|
||||
Response Should Contain Key ${resp} $.status.${key}
|
||||
END
|
||||
|
||||
Update Scheduler Config
|
||||
[Documentation] Update scheduler settings and verify they are persisted.
|
||||
${payload}= Create Dictionary
|
||||
... enabled=True
|
||||
... interval_minutes=120
|
||||
... schedule_time=04:30
|
||||
... schedule_days=['mon', 'wed', 'fri']
|
||||
... auto_download_after_rescan=True
|
||||
${resp}= Update Scheduler Config ${payload}
|
||||
Response Should Have Status ${resp} 200
|
||||
${saved_time}= Get JSON Value ${resp} $.config.schedule_time
|
||||
Should Be Equal As Strings ${saved_time} 04:30
|
||||
${saved_days}= Get JSON Value ${resp} $.config.schedule_days
|
||||
List Should Contain Value ${saved_days} mon
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Trigger Rescan
|
||||
# ---------------------------------------------------------------------------
|
||||
Trigger Manual Rescan
|
||||
[Documentation] Manually trigger a scheduled rescan.
|
||||
${resp}= Trigger Rescan
|
||||
Response Should Have Status ${resp} 200
|
||||
${success}= Get JSON Value ${resp} $.success
|
||||
Should Be Equal As Strings ${success} True
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Validation
|
||||
# ---------------------------------------------------------------------------
|
||||
Invalid Schedule Time
|
||||
[Documentation] Verify that malformed schedule_time is rejected.
|
||||
${payload}= Create Dictionary
|
||||
... enabled=True
|
||||
... interval_minutes=60
|
||||
... schedule_time=25:00
|
||||
... schedule_days=['mon']
|
||||
... auto_download_after_rescan=False
|
||||
${resp}= Update Scheduler Config ${payload}
|
||||
Response Should Have Status ${resp} 422
|
||||
|
||||
Invalid Schedule Days
|
||||
[Documentation] Verify that invalid day abbreviations are rejected.
|
||||
${payload}= Create Dictionary
|
||||
... enabled=True
|
||||
... interval_minutes=60
|
||||
... schedule_time=03:00
|
||||
... schedule_days=['monday', 'tuesday']
|
||||
... auto_download_after_rescan=False
|
||||
${resp}= Update Scheduler Config ${payload}
|
||||
Response Should Have Status ${resp} 422
|
||||
|
||||
Empty Schedule Days
|
||||
[Documentation] Verify that empty schedule_days is handled.
|
||||
${payload}= Create Dictionary
|
||||
... enabled=True
|
||||
... interval_minutes=60
|
||||
... schedule_time=03:00
|
||||
... schedule_days=[]
|
||||
... auto_download_after_rescan=False
|
||||
${resp}= Update Scheduler Config ${payload}
|
||||
Response Should Have Status ${resp} 200
|
||||
Reference in New Issue
Block a user