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