aboutsummaryrefslogtreecommitdiffstats
path: root/kud/tests/_functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kud/tests/_functions.sh')
-rwxr-xr-xkud/tests/_functions.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/kud/tests/_functions.sh b/kud/tests/_functions.sh
index 7687f3fa..8e715ef4 100755
--- a/kud/tests/_functions.sh
+++ b/kud/tests/_functions.sh
@@ -88,6 +88,37 @@ function call_api {
fi
}
+function call_api_nox {
+ # this version doesn't exit the script if there's
+ # an error.
+
+ #Runs curl with passed flags and provides
+ #additional error handling and debug information
+
+ #Function outputs server response body
+ #and performs validation of http_code
+
+ local status
+ local curl_response_file="$(mktemp -p /tmp)"
+ local curl_common_flags=(-s -w "%{http_code}" -o "${curl_response_file}")
+ local command=(curl "${curl_common_flags[@]}" "$@")
+
+ echo "[INFO] Running '${command[@]}'" >&2
+ if ! status="$("${command[@]}")"; then
+ echo "[ERROR] Internal curl error! '$status'" >&2
+ cat "${curl_response_file}"
+ rm "${curl_response_file}"
+ else
+ echo "[INFO] Server replied with status: ${status}" >&2
+ if [[ "${status:0:1}" =~ [45] ]]; then
+ cat "${curl_response_file}"
+ else
+ cat "${curl_response_file}" | jq .
+ fi
+ rm "${curl_response_file}"
+ fi
+}
+
function delete_resource {
#Issues DELETE http call to provided endpoint
#and further validates by following GET request