tests: refactor abuild-keygen tests

This commit is contained in:
Natanael Copa 2022-06-15 10:55:55 +02:00
parent 7f675c1de3
commit 2326f0c4ef
2 changed files with 81 additions and 43 deletions

View File

@ -1,43 +0,0 @@
setup() {
export ABUILD_KEYGEN="$PWD/../abuild-keygen"
export ABUILD_SHAREDIR="$PWD/.."
export ABUILD_USERDIR="$BATS_TEST_TMPDIR"/user
mkdir -p "$ABUILD_USERDIR"
export abuild_keygen_install_root=${ABUILD_USERDIR}
# provide a fake git
mkdir -p "$BATS_TEST_TMPDIR"/bin
cat >"$BATS_TEST_TMPDIR"/bin/git <<-EOF
#!/bin/sh
exit 1
EOF
chmod +x "$BATS_TEST_TMPDIR"/bin/git
export PATH="$BATS_TEST_TMPDIR/bin:$PATH"
}
@test "abuild-keygen: help text" {
$ABUILD_KEYGEN --help
}
@test "abuild-keygen: generate key non-interactively" {
$ABUILD_KEYGEN -n
}
@test "abuild-keygen: --append option" {
PACKAGER="Test User <user@example.com>" $ABUILD_KEYGEN --append -n
grep '^PACKAGER_PRIVKEY=.*user@example.com' "$ABUILD_USERDIR"/abuild.conf
}
@test "abuild-keygen: --install option fails without SUDO" {
run SUDO=false $ABUILD_KEYGEN --install
[ $status -ne 0 ]
}
@test "abuild-keygen: --install option (interactive)" {
echo | SUDO= $ABUILD_KEYGEN --install
}
@test "abuild-keygen: --install -n (non-interacive)" {
SUDO= $ABUILD_KEYGEN --install -n
}

81
tests/abuild_keygen_test Executable file
View File

@ -0,0 +1,81 @@
#!/usr/bin/env atf-sh
. $(atf_get_srcdir)/test_env.sh
init_tests \
abuild_keygen_help \
abuild_keygen_invalid_opts \
abuild_keygen_invalid_arg \
abuild_keygen_non_interactive \
abuild_keygen_append \
abuild_keygen_install_without_sudo \
abuild_keygen_install_interactive \
abuild_keygen_install_non_interactive
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
export GIT=false
abuild_keygen_help_body() {
atf_check -s exit:0 \
-o not-empty \
-e empty \
abuild-keygen --help
}
abuild_keygen_invalid_opts_body() {
atf_check -s exit:1 \
-o empty \
-e not-empty \
abuild-keygen -INVALID
}
abuild_keygen_invalid_arg_body() {
atf_check -s exit:2 \
-o empty \
-e not-empty \
abuild-keygen INVALID
}
abuild_keygen_non_interactive_body() {
atf_check -s exit:0 \
-o empty \
-e match:"Generating RSA.*4096" \
abuild-keygen -n
}
abuild_keygen_append_body() {
PACKAGER="Test User <user@example.com>" \
atf_check -s exit:0 \
\
-o empty \
-e match:"Generating RSA" \
abuild-keygen --append -n
grep '^PACKAGER_PRIVKEY=.*user@example.com' "$HOME"/.abuild/abuild.conf \
|| atf_fail 'PACKAGER_PRIVKEY not set in abuild.conf'
}
abuild_keygen_install_without_sudo_body() {
SUDO=false \
atf_check -s exit:1 \
\
-o empty \
-e match:"Generating RSA" \
abuild-keygen --install -n
}
abuild_keygen_install_interactive_body() {
echo | abuild_keygen_install_root="$PWD" SUDO= \
atf_check -s exit:0 \
\
-o match:"Enter file" \
-e match:"Generating RSA" \
abuild-keygen --install
}
abuild_keygen_install_non_interactive_body() {
abuild_keygen_install_root="$PWD" SUDO= \
atf_check -s exit:0 \
\
-o empty \
-e match:"Generating RSA" \
abuild-keygen --install -n
}