--- test_name: Check general queue format (json output) strict: - json:on stages: - name: queue format single entry request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: json limit: 1 response: status_code: 200 headers: content-type: !re_match "application/json" content-type: !re_search "charset=(UTF|utf)-8" pragma: "no-cache" access-control-allow-origin: "*" json: queue: version: "{SAB_VERSION}" paused: !anybool pause_int: !re_match "[0-9]*" paused_all: !anybool diskspace1: !re_match "[0-9.]*" diskspace2: !re_match "[0-9.]*" diskspace1_norm: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" diskspace2_norm: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" diskspacetotal1: !re_match "[0-9.]*" diskspacetotal2: !re_match "[0-9.]*" speedlimit: !re_match "[0-9]*" speedlimit_abs: !re_match "[0-9.]*" # Value may be empty if unset so !anyint won't work have_warnings: !re_match "[0-9]*" finishaction: !anything quota: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" have_quota: !anybool left_quota: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" cache_art: !re_search "[0-9]*" cache_size: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" kbpersec: !re_match "[0-9.]*" speed: !re_search "[0-9][0-9.]*.?(\ [A-Z])?" mbleft: !re_match "[0-9.]*" mb: !re_match "[0-9.]*" sizeleft: !re_search "[0-9][0-9.]*.?(\ [A-Z]+)?" size: !re_search "[0-9][0-9.]*.?(\ [A-Z]+)?" noofslots_total: !anyint status: "Paused" timeleft: "0:00:00" noofslots: !anyint start: !anyint limit: !anyint finish: !anyint slots: !anylist index: !re_match "[0-9]+" nzo_id: !re_match "SABnzbd_nzo_.*" unpackopts: !re_match "-?[0-9]+" priority: "!anystr" script: "!anystr" filename: "!anystr" labels: !anylist password: "!anystr" cat: "!anystr" mbleft: !re_match "[0-9.]*" mb: !re_match "[0-9.]*" size: !re_search "[0-9][0-9.]*.?(\ [A-Z]+)?" sizeleft: !re_search "[0-9][0-9.]*.?(\ [A-Z]+)?" percentage: "[0-9.]+" mbmissing: !re_search "[0-9][0-9.]*.?(\ [A-Z]+)?" direct_unpack: !re_match "[0-9]+" status: "Paused" timeleft: "0:00:00" avg_age: "!anystr" --- test_name: Check general queue format (text output) stages: - name: queue format single entry request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: text limit: 1 response: status_code: 200 headers: content-type: !re_match "text/plain" content-type: !re_search "charset=(UTF|utf)-8" pragma: "no-cache" access-control-allow-origin: "*" content-length: !re_match "[0-9]+" verify_response_with: function: tavern.helpers:validate_regex extra_kwargs: # Verify only a bunch of key response parameters with a regex using # positive looksaheads, so parameters match regardless of their order # of appearance in the text output expression: "^{{(?=.*'version': '{SAB_VERSION}')(?=.*'noofslots_total':)(?=.*'status':)(?=.*'timeleft': '0:00:00')(?=.*'noofslots':)(?=.*'slots': \\[.+\\]).*}}$" --- test_name: Check general queue format (xml output) stages: - name: queue format single entry request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: xml limit: 1 response: status_code: 200 headers: content-type: !re_match "text/xml" content-type: !re_search "charset=(UTF|utf)-8" pragma: "no-cache" access-control-allow-origin: "*" content-length: !re_match "[0-9]+" verify_response_with: function: tavalidate:assert_xml extra_kwargs: strict: True expected: | !anystr !anybool !anyint !anybool !anyfloat !anyfloat !anystr !anystr !anyfloat !anyfloat !anyint !anystr !anyint !anything !anystr !anybool !anystr !anyint !anystr !anyfloat !anystr !anyfloat !anyfloat !anystr !anystr !anyint !anystr 0:00:00 !anyint !anyint !anyint !anyint !anyint !anystr !anyint !anystr !anystr !anything !anystr !anystr !anyfloat !anyfloat !anystr !anystr !anyint !anyfloat !anything !anystr 0:00:00 !anystr