--- test_name: Check empty queue format (json output) strict: - json:on stages: - name: queue format empty request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: json 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: null 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: "0 B" size: "0 B" noofslots_total: 0 status: "Idle" timeleft: "0:00:00" noofslots: 0 start: 0 limit: 0 finish: 0 slots: [] --- test_name: Check empty queue format (text output) stages: - name: queue format empty request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: text 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': 0)(?=.*'status': 'Idle')(?=.*'timeleft': '0:00:00')(?=.*'noofslots': 0)(?=.*'slots': \\[\\]).*}}$" --- test_name: Check empty queue format (xml output) stages: - name: queue format empty request: url: "http://{SAB_HOST}:{SAB_PORT}/sabnzbd/api" method: GET params: mode: queue apikey: "{SAB_APIKEY}" output: xml 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 # don't accept extra tags in the response expected: | !anystr !anybool !anyint !anybool !anyfloat !anyfloat !anystr !anystr !anyfloat !anyfloat !anyint !anystr !anyint !anything !anystr !anybool !anystr 0 0 B !anyfloat 0 0.00 0.00 0 B 0 B 0 Idle 0:00:00 0 0 0 0