127 lines
5.3 KiB
Plaintext
127 lines
5.3 KiB
Plaintext
*** Settings ***
|
|
Documentation Anime library API tests for Aniworld.
|
|
... Covers status, rescan, search, add, details, episodes, filters, and duplicates.
|
|
|
|
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 ***
|
|
# ---------------------------------------------------------------------------
|
|
# Library Status
|
|
# ---------------------------------------------------------------------------
|
|
Get Anime Library Status
|
|
[Documentation] Retrieve the anime library status.
|
|
${resp}= Get Anime Status
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Contain Keys ${resp} directory series_count
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Rescan
|
|
# ---------------------------------------------------------------------------
|
|
Rescan Library
|
|
[Documentation] Trigger a library rescan and verify acceptance.
|
|
${resp}= Rescan Library
|
|
Response Should Have Status ${resp} 200
|
|
|
|
Scan Status During Idle
|
|
[Documentation] Get scan status when no scan is in progress.
|
|
${resp}= Get Scan Status
|
|
Response Should Have Status ${resp} 200
|
|
${in_progress}= Get JSON Value ${resp} $.in_progress
|
|
Should Be Equal As Strings ${in_progress} False
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Search
|
|
# ---------------------------------------------------------------------------
|
|
Search Anime
|
|
[Documentation] Search for anime series via the provider.
|
|
${resp}= Search Anime attack
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Series CRUD
|
|
# ---------------------------------------------------------------------------
|
|
Add New Series
|
|
[Documentation] Add a new anime series to the library.
|
|
${resp}= Add Series https://aniworld.to/anime/stream/attack-on-titan Attack on Titan 2013
|
|
Response Should Have Status ${resp} 201
|
|
${key}= Get JSON Value ${resp} $.key
|
|
Should Not Be Empty ${key}
|
|
Set Test Variable ${TEST_SERIES_KEY} ${key}
|
|
|
|
Get Series Details
|
|
[Documentation] Retrieve details for a specific series.
|
|
Add New Series
|
|
${resp}= Get Series Details ${TEST_SERIES_KEY}
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Contain Keys ${resp} key name folder episodes
|
|
|
|
Update Series Settings
|
|
[Documentation] Update settings for a specific series.
|
|
Add New Series
|
|
${payload}= Create Dictionary preferred_language=german
|
|
${resp}= PUT API /api/anime/${TEST_SERIES_KEY}/settings ${payload}
|
|
Response Should Have Status ${resp} 200
|
|
|
|
Get Series Episodes
|
|
[Documentation] Retrieve the episode list for a series.
|
|
Add New Series
|
|
${resp}= Get Series Episodes ${TEST_SERIES_KEY}
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
Delete Series
|
|
[Documentation] Remove a series from the library.
|
|
Add New Series
|
|
${resp}= Delete Series ${TEST_SERIES_KEY}
|
|
Response Should Have Status ${resp} 200
|
|
${get_resp}= Get Series Details ${TEST_SERIES_KEY}
|
|
Response Should Have Status ${get_resp} 404
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Filters
|
|
# ---------------------------------------------------------------------------
|
|
List All Series
|
|
[Documentation] List all series without filters.
|
|
${resp}= GET API /api/anime/
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
List Missing Episodes Only
|
|
[Documentation] Filter series to show only those with missing episodes.
|
|
${resp}= GET API /api/anime/?filter=missing
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
List No Episodes
|
|
[Documentation] Filter series to show only those with zero episodes.
|
|
${resp}= GET API /api/anime/?filter=no_episodes
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Duplicates
|
|
# ---------------------------------------------------------------------------
|
|
Duplicate Folders Detection
|
|
[Documentation] Check for duplicate folder groups in the library.
|
|
${resp}= GET API /api/anime/duplicate-folders
|
|
Response Should Have Status ${resp} 200
|
|
Response Should Be Valid JSON ${resp}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# NFO Regeneration
|
|
# ---------------------------------------------------------------------------
|
|
Regenerate NFO For Series
|
|
[Documentation] Trigger NFO regeneration for a specific series.
|
|
Add New Series
|
|
${resp}= POST API /api/anime/${TEST_SERIES_KEY}/regenerate-nfo
|
|
Response Should Have Status ${resp} 200
|