split utils, added manual tests

This commit is contained in:
2018-11-25 11:16:02 +02:00
parent 74ee5edd7e
commit 8452a7034e
10 changed files with 294 additions and 116 deletions

7
test/run-server.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
cd ..
docker-compose down &
docker-compose build
wait
docker-compose up -d
docker-compose logs --follow

137
test/run-tests.sh Executable file
View File

@@ -0,0 +1,137 @@
#!/bin/bash
_qCol() {
# print "easier" mapping of ANSI colors and controls
local K="\033[1;30m"
local R="\033[1;31m"
local G="\033[1;32m"
local B="\033[1;34m"
local Y="\033[1;33m"
local M="\033[1;35m"
local C="\033[1;36m"
local W="\033[1;37m"
local k="\033[2;30m"
local r="\033[2;31m"
local g="\033[2;32m"
local b="\033[2;34m"
local y="\033[2;33m"
local m="\033[2;35m"
local c="\033[2;36m"
local w="\033[2;37m"
local bk="\033[40m"
local br="\033[41m"
local bg="\033[42m"
local by="\033[43m"
local bb="\033[44m"
local bm="\033[45m"
local bc="\033[46m"
local bw="\033[47m"
local S='\033[1m' #strong
local s='\033[2m' #strong off
local U='\033[4m' #underline
local u='\033[24m' #underline off
local z='\033[0m' #zero colors
local Z='\033[0m' #zero colors
local ic='\033[7m' #inverse colors
local io='\033[27m' #inverse off
local st='\033[9m' #strike on
local so='\033[29m' #strike off
local CLR='\033[2J' # Clear screen
local CLREND='\033[K' # Clear to end of line
local CLRBEG='\033[1K' # Clear to beginning of line
local CLRSCR="$CLR"'\033[0;0H' # Clear screen, reset cursor
local color_keys=" K R G B Y M C W k r g b y m c w S s U u z Z ic io st so bk br bg by bb bm bc bw CLR CLREND CLRBEG CLRSCR "
[[ "$1" = "export" ]] && {
local key
local prefix="$2"
[[ -z "$2" ]] && prefix=_c
for key in $color_keys; do
eval export ${prefix}${key}=\'${!key}\'
done
return
}
local arg val
for ((arg=1;arg<=$#;arg++)) {
val=${!arg}
[[ ${color_keys} = *" $val "* ]] || { echo "No such color code '${val}'" >&2; return 1; }
printf ${!val}
}
}
cont() {
set +x
_qCol G
echo Continue
_qCol z
read continue
_qCol Y
echo =========================================
_qCol z
set -x
}
set -e
BIG="big file(1).ext"
BIGS="big_file1.ext"
SMALL="small file"
SMALLS="small_file"
test -f "$BIG" || dd if=/dev/zero of="$BIG" bs=8192 count=40000
test -f "$SMALL" ||dd if=/dev/urandom of="$SMALL" bs=4096 count=400
set -x
../code/flees-manager.py list
cont
../code/flees-manager.py show test -P
cont
../code/flees-manager.py modify -n test -P true -u true -d true -t testToken
cont
../code/flees-manager.py rest test flip -t testToken | tail -n 1 | xargs curl -o test-flip
chmod +x test-flip
./test-flip
cont
./test-flip update
cont
eval $( ./test-flip upload | tail -n 1 | sed -e 's,#,,' -e 's,file_to_upload.ext,,'; echo \"$BIG\" )
sleep 2
cont
./test-flip url "$BIGS" | xargs curl -s -D /dev/stderr | head -c 1 | head -c 0
cont
./test-flip w "$SMALL"
cont
./test-flip
cont
./test-flip r "$SMALLS" | sha256sum
cat "$SMALL" | sha256sum
cont
eval $( ../code/flees-manager.py rest test upload -t testToken | grep bash | sed -e 's,#,,' -e 's,file_to_upload.*,,' ; echo \"$BIG\" )
cont
echo | ./test-flip d "$SMALLS"
echo | ./test-flip d "$BIGS"
cont
../code/flees-manager.py modify -n test --remove-token testToken
cont
rm -f test-flip "$SMALL" "$BIG"

28
test/test-config.json Normal file
View File

@@ -0,0 +1,28 @@
{
"__comment": [
"workers: number of parallel processes. single long upload reserves a process.",
"timeout: seconds for process to last. single long upload cant take longer than this.",
"uid: Docker runs as root, this changes owner of written files. -1 to skip chowning",
"max_zip_size: dont allow zip downloads if folder size exceeds this many megabytes",
"app_secret_key: used to encrypt session cookie"
],
"public_url": "http://localhost:8080",
"site_name": "testsite",
"notifier": "",
"workers": 3,
"timeout": 3600,
"uid": 1000,
"gid": -1,
"timezone": "Europe/Helsinki",
"__do_not_edit": "most likely you will not change anything after this line",
"data_folder": "data",
"version_folder": "_version",
"shares_file": "data/shares.json",
"log_file": "data/flees.log",
"zip_folder": "data/.zip",
"max_zip_size": 1000,
"date_format": "%Y-%m-%d %H:%M",
"app_secret_key": "Cz2dw5NiRt3PSMFBSLTAJJi7U2CdW7iPQqEeOaU6",
"debug": true
}

2
test/test-env Normal file
View File

@@ -0,0 +1,2 @@
FLEES_EXPOSE=0.0.0.0:8080
FLEES_CONFIG=data/config.json