Add tests for the restore command

Test the restore mode of git-serve and git-update.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2016-08-06 01:45:15 +02:00
parent dd9c6f3ddc
commit 83df9808b4
2 changed files with 46 additions and 0 deletions

View file

@ -85,4 +85,21 @@ test_expect_success "Try to push to someone else's repository as Trusted User."
test_cmp expected actual
'
test_expect_success "Test restore." '
echo "DELETE FROM PackageBases WHERE Name = \"foobar\";" | \
sqlite3 aur.db &&
cat >expected <<-EOF &&
user
foobar
EOF
SSH_ORIGINAL_COMMAND="restore foobar" AUR_USER=user AUR_PRIVILEGED=0 \
"$GIT_SERVE" 2>&1 >actual
test_cmp expected actual
'
test_expect_success "Try to restore an existing package base." '
SSH_ORIGINAL_COMMAND="restore foobar2" AUR_USER=user AUR_PRIVILEGED=0 \
test_must_fail "$GIT_SERVE" 2>&1
'
test_done

View file

@ -85,6 +85,35 @@ test_expect_success 'Test update hook on an updated repository.' '
test_cmp expected actual
'
test_expect_success 'Test restore mode.' '
AUR_USER=user AUR_PKGBASE=foobar AUR_PRIVILEGED=0 \
"$GIT_UPDATE" restore 2>&1 &&
cat >expected <<-EOF &&
2|2|foobar2|1-1|aurweb test package.|https://aur.archlinux.org/
3|1|foobar|1-2|aurweb test package.|https://aur.archlinux.org/
1|GPL
2|MIT
2|2
3|1
2|1|python-pygit2||
3|1|python-pygit2||
1|1
2|1
EOF
>actual &&
for t in Packages Licenses PackageLicenses Groups PackageGroups \
PackageDepends PackageRelations PackageSources \
PackageNotifications; do
echo "SELECT * FROM $t;" | sqlite3 aur.db >>actual
done &&
test_cmp expected actual
'
test_expect_success 'Test restore mode on a non-existent repository.' '
AUR_USER=user AUR_PKGBASE=foobar3 AUR_PRIVILEGED=0 \
test_must_fail "$GIT_UPDATE" restore 2>&1
'
test_expect_success 'Pushing to a branch other than master.' '
old=0000000000000000000000000000000000000000 &&
new=$(git -C aur.git rev-parse HEAD) &&