*** 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