0
0
Fork 0
mirror of https://github.com/atmoz/sftp.git synced 2024-11-24 12:59:24 -05:00
atmoz-sftp/tests/run

72 lines
1.7 KiB
Text
Raw Normal View History

2015-11-23 07:39:17 -05:00
#!/bin/bash
# See: https://github.com/djui/bashunit
scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
buildDir="$scriptDir/.."
tmpDir="/tmp/atmoz_sftp_test"
build=${1:-"build"}
sftpImageName="atmoz/sftp_test"
sftpContainerName="atmoz_sftp_test"
function beforeTest() {
if [ "$build" == "build" ]; then
docker build --pull=true --tag "$sftpImageName" "$buildDir"
fi
# Private key can not be read by others
chmod go-rw "$scriptDir/id_rsa"
2015-11-23 07:39:17 -05:00
rm -rf "$tmpDir" # clean state
mkdir "$tmpDir"
docker run \
-v "$scriptDir/id_rsa.pub":/home/test/.ssh/keys/id_rsa.pub:ro \
-v "$tmpDir":/home/test/share \
--name "$sftpContainerName" \
--expose 22 \
-d "$sftpImageName" \
test:123:$(id -u):$(id -g) \
> /dev/null
sleep 1 # wait for sftp server to get ready
}
function afterTest() {
docker rm -fv "$sftpContainerName" > /dev/null
rm -rf "$tmpDir"
}
function getSftpIp() {
docker inspect -f {{.NetworkSettings.IPAddress}} "$sftpContainerName"
}
function runSftpCommands() {
ip="$(getSftpIp)"
echo "$@" | sftp \
-i "$scriptDir/id_rsa" \
-oStrictHostKeyChecking=no \
-oUserKnownHostsFile=/dev/null \
-b - test@$ip \
> /dev/null 2>&1
}
function testContainerIsRunning() {
ps="$(docker ps -q -f name="$sftpContainerName")"
assertNotEqual "$ps" ""
}
function testLoginUsingSshKey() {
runSftpCommands "exit"
assertReturn $? 0
}
function testWritePermission() {
runSftpCommands $'cd share\nmkdir test'
test -d "$tmpDir/test"
assertReturn $? 0
}
# Run tests
source "$scriptDir/bashunit.bash"
# Nothing happens after this