mirror of
https://github.com/atmoz/sftp.git
synced 2024-11-17 12:51:33 -05:00
Add basic unit testing
This commit is contained in:
parent
e03db0f4d9
commit
bc2cbdef4f
3 changed files with 96 additions and 0 deletions
27
tests/id_rsa
Normal file
27
tests/id_rsa
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAxww0MPWvZohlgxFyxvZjEezrld7n5pIJuYbZ7bmZ8UcNbFH8
|
||||||
|
kpoHmmOWQ7x8ObhDLpcWEv8ifoS8RYLI97VMCJcEc/ckcq82ZvoAROF4bG/jYXWj
|
||||||
|
EHRZzEp93FMPFBzvBZkXeBS4ksd9sfqRfNyZzUeu/t380oNsCpr8+TnaEEhC5+E6
|
||||||
|
UbjreH0CPttkD0aRjrszer1hkGs2Py80VZSnidZGrFRNafxigjcLRNp4ZJNweFc7
|
||||||
|
mcuLIfBapJXIJGuj2XAxrt86pBQoESfaETg0m3DWl4Z1w6wZZ26WnIiVOHdiXcj3
|
||||||
|
U0tdZwCixPihH5yYYyy6fE11kMw9sQdhx+4BHQIDAQABAoIBAFGxrpIRpCW/AXrj
|
||||||
|
5GnIoiyvQpnGXQODGL6unC83p/khIl883x8EXO5+xSOT7qB6AgjTNdoiIPQwYl1d
|
||||||
|
KkKQhF5aLRezbaAsTXXCUe3zZEuNOJO9hmmwd1KjmDifVmb44Rk5FirQxlhnzC0K
|
||||||
|
HEBVAkMAktBEKAn2qpdHuWBI4Dkh1hWIpChtkq4h1brsgaYurkfRnJOv1i/8kIWa
|
||||||
|
QlpzxZk2m5i1TpyfRsxuqt3migcrUSJsCmMwkFylDNKYQVS4HRZAXZndq3o51ZF5
|
||||||
|
AzwgMjCty9G1eQGFx4k8CzDvahhTKHds73RHFTEGqWZiJNayuzb0Yz0wvaFlHnWl
|
||||||
|
35E11bkCgYEA5ALPklJ36jLNJiCzReH7SlAczIN9Rh1kRReHDD4St5cxA/nCynhI
|
||||||
|
HET2g8QBnonup1V3WPsDmLTga0hPhXhrI3oSm7jhBc2HOqNaJ/z6jYgGbE6pP05u
|
||||||
|
PgCi8gubX59733FJINmy5XOMzRaVTCfO2lh3zB4Ioj2t4EQyWTaQSw8CgYEA33s6
|
||||||
|
aa+OtrwFmB42KQBPv0E1Yg++jpyrEysrvr7+hSI/8wFJvMqz6xCjsEolgU5/BIIr
|
||||||
|
xQJhqGgtBn2/HRGYqwa00vJJwxYwzPZHK2CiGL5n9HamVBEXeQAp16V6ftPE7lAi
|
||||||
|
MmbhEpbZZpVwCRsi8XofJNS9+YHhUk0si1O8oRMCgYEAn4uf90Ehi40Uo9NJ3mJs
|
||||||
|
VemM3UY8yG0UlowKAXUF39U5hRClTsuvmahf3n+uqmLVzd0t7+Nk9tvKFQe6LSi/
|
||||||
|
v0lR8AkD2+2e7FcVZNnN8G74H51DLHsTBOupGTkp9VVBdm5sv0HVvlyGb5OX0Hwi
|
||||||
|
cAJrgTaaz/vcyQqvOGHHwd0CgYEAo679FKVqEPtb2ZPfNV6uCjX3pJBFkOy8/Hg1
|
||||||
|
PStk/hwc3J6H5IhPCQ+R5LAaEkBtFd9FsbFR1+gdelClpuPZfwKVdJ/TWNkq+yQy
|
||||||
|
8ll/wEHNoCc7If22xIBTJUhllPkEl0wIEAR8O4JTTyiK+5BtopJAt1g+oL35S6+M
|
||||||
|
vauiUBMCgYAHum82lFQDVvLGEj79dpuj0cFfAwWZaPhxjjpQKp4pyCR6mU2O0uO8
|
||||||
|
FtGG1swVG8H/sW7mcFeamZqjCHFSwcKqp5Ij6Wr2xrBU7R2VqIPAsLKHWZzM0G11
|
||||||
|
X391kZk9mXwucy8D0eM8lE/suWmdFK4vdtP+y62q4AFru0HslSCAnA==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
1
tests/id_rsa.pub
Normal file
1
tests/id_rsa.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHDDQw9a9miGWDEXLG9mMR7OuV3ufmkgm5htntuZnxRw1sUfySmgeaY5ZDvHw5uEMulxYS/yJ+hLxFgsj3tUwIlwRz9yRyrzZm+gBE4Xhsb+NhdaMQdFnMSn3cUw8UHO8FmRd4FLiSx32x+pF83JnNR67+3fzSg2wKmvz5OdoQSELn4TpRuOt4fQI+22QPRpGOuzN6vWGQazY/LzRVlKeJ1kasVE1p/GKCNwtE2nhkk3B4VzuZy4sh8Fqklcgka6PZcDGu3zqkFCgRJ9oRODSbcNaXhnXDrBlnbpaciJU4d2JdyPdTS11nAKLE+KEfnJhjLLp8TXWQzD2xB2HH7gEd atmoz@arch-book
|
68
tests/run
Executable file
68
tests/run
Executable file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/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
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in a new issue