Files
fission-src/test/tests/test_archive_cli.sh
T
Sanket SudakeandGitHub d23ed572f9 Add tests for preupgradchecks and spec/archive CLI (#2874)
* Add tests for preupgradchecks
* Add spec tests
* Add package archive tests
* Wait for cleanup
* Fix test and coverage

---------

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2023-11-17 14:08:38 +05:30

64 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
source "$(dirname $0)"/../utils.sh
TEST_ID=$(generate_test_id)
echo "TEST_ID = $TEST_ID"
tmp_dir="/tmp/test-$TEST_ID"
mkdir -p "$tmp_dir"
podname=$(kubectl get pods -n fission | grep "storagesvc" |awk '{print $1}')
cleanup() {
echo "previous response" $?
log "Cleaning up..."
clean_resource_by_id $TEST_ID
rm -rf $tmp_dir
}
if [ -z "${TEST_NOCLEANUP:-}" ]; then
trap cleanup EXIT
else
log "TEST_NOCLEANUP is set; not cleaning up test artifacts afterwards."
fi
create_archive() {
log "Creating an archive"
mkdir -p "$tmp_dir"/archive
dd if=/dev/urandom of="$tmp_dir"/archive/dynamically_generated_file bs=256k count=1
printf 'def main():\n return "Hello, world!"' > "$tmp_dir"/archive/hello.py
zip -jr "$tmp_dir"/test-deploy-pkg.zip "$tmp_dir"/archive/
}
# Test for upload
create_archive
uploadResp=$(fission ar upload --name "$tmp_dir"/test-deploy-pkg.zip)
filename=$(echo "$uploadResp" | cut -d':' -f2 | tr -d ' ')
kubectl exec -i "$podname" -n fission -- /bin/sh -c "ls $filename"
# Test for list
listResp=$(fission ar list)
echo "$listResp" | grep "$filename"
# Test for download
fission ar download --id "$filename"
fileID=$(echo "$filename" | cut -d'/' -f4)
ls | grep "$fileID"
# Test for get-url
getURLResp=$(fission ar get-url --id "$filename")
echo "$getURLResp" | grep "/v1/archive?id=%2Ffission%2Ffission-functions%2F$fileID"
# Test for delete
fission ar delete --id "$filename"
fission ar list | grep -v "$filename"
log "Archive CLI tests done."