git-lfs/test/test-uninstall.sh

146 lines
3.6 KiB
Bash
Raw Normal View History

2015-07-30 02:37:31 +00:00
#!/usr/bin/env bash
2015-07-10 16:43:20 +00:00
. "test/testlib.sh"
2015-11-16 20:37:08 +00:00
begin_test "uninstall outside repository"
2015-07-10 16:43:20 +00:00
(
set -e
2016-11-30 20:43:46 +00:00
mkdir uninstall-test
cd uninstall-test
smudge="$(git config filter.lfs.smudge)"
clean="$(git config filter.lfs.clean)"
filter="$(git config filter.lfs.process)"
printf "$smudge" | grep "git-lfs smudge"
printf "$clean" | grep "git-lfs clean"
printf "$filter" | grep "git-lfs filter-process"
2015-07-10 16:43:20 +00:00
2016-11-15 17:07:11 +00:00
# uninstall multiple times to trigger https://github.com/git-lfs/git-lfs/issues/529
2015-11-16 20:37:08 +00:00
git lfs uninstall
2016-11-30 20:43:46 +00:00
[ ! -e "lfs" ]
2015-11-18 18:27:00 +00:00
git lfs install
2015-11-16 20:37:08 +00:00
git lfs uninstall | tee uninstall.log
grep "configuration has been removed" uninstall.log
2015-07-10 16:43:20 +00:00
[ "" = "$(git config --global filter.lfs.smudge)" ]
[ "" = "$(git config --global filter.lfs.clean)" ]
[ "" = "$(git config --global filter.lfs.process)" ]
cat $HOME/.gitconfig
[ "$(grep 'filter "lfs"' $HOME/.gitconfig -c)" = "0" ]
2015-07-10 16:43:20 +00:00
)
end_test
2016-11-30 20:43:46 +00:00
begin_test "uninstall outside repository without access to .git/lfs"
(
set -e
mkdir uninstall-no-lfs
cd uninstall-no-lfs
mkdir .git
touch .git/lfs
touch lfs
[ "" != "$(git config --global filter.lfs.smudge)" ]
[ "" != "$(git config --global filter.lfs.clean)" ]
[ "" != "$(git config --global filter.lfs.process)" ]
git lfs uninstall
[ "" = "$(git config --global filter.lfs.smudge)" ]
[ "" = "$(git config --global filter.lfs.clean)" ]
[ "" = "$(git config --global filter.lfs.process)" ]
)
2015-11-16 20:37:08 +00:00
begin_test "uninstall inside repository with default pre-push hook"
2015-07-10 16:43:20 +00:00
(
set -e
reponame="$(basename "$0" ".sh")-hook"
mkdir "$reponame"
cd "$reponame"
git init
2015-11-18 18:27:00 +00:00
git lfs install
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ]
grep "git-lfs" .git/hooks/pre-push
[ "git-lfs smudge -- %f" = "$(git config filter.lfs.smudge)" ]
[ "git-lfs clean -- %f" = "$(git config filter.lfs.clean)" ]
[ "git-lfs filter-process" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
2015-11-16 20:37:08 +00:00
git lfs uninstall
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ] && {
echo "expected .git/hooks/pre-push to be deleted"
exit 1
}
[ "" = "$(git config filter.lfs.smudge)" ]
[ "" = "$(git config filter.lfs.clean)" ]
[ "" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
)
end_test
2015-11-16 20:37:08 +00:00
begin_test "uninstall inside repository without git lfs pre-push hook"
2015-07-10 16:43:20 +00:00
(
set -e
reponame="$(basename "$0" ".sh")-no-hook"
mkdir "$reponame"
cd "$reponame"
git init
2015-11-18 18:27:00 +00:00
git lfs install
echo "something something git-lfs" > .git/hooks/pre-push
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ]
[ "something something git-lfs" = "$(cat .git/hooks/pre-push)" ]
2015-07-10 16:43:20 +00:00
[ "git-lfs smudge -- %f" = "$(git config filter.lfs.smudge)" ]
[ "git-lfs clean -- %f" = "$(git config filter.lfs.clean)" ]
[ "git-lfs filter-process" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
2015-11-16 20:37:08 +00:00
git lfs uninstall
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ]
[ "" = "$(git config filter.lfs.smudge)" ]
[ "" = "$(git config filter.lfs.clean)" ]
[ "" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
)
end_test
2015-11-16 20:37:08 +00:00
begin_test "uninstall hooks inside repository"
2015-07-10 16:43:20 +00:00
(
set -e
reponame="$(basename "$0" ".sh")-only-hook"
mkdir "$reponame"
cd "$reponame"
git init
2015-11-18 18:27:00 +00:00
git lfs install
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ]
grep "git-lfs" .git/hooks/pre-push
[ "git-lfs smudge -- %f" = "$(git config filter.lfs.smudge)" ]
[ "git-lfs clean -- %f" = "$(git config filter.lfs.clean)" ]
[ "git-lfs filter-process" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
2015-11-16 20:37:08 +00:00
git lfs uninstall hooks
2015-07-10 16:43:20 +00:00
[ -f .git/hooks/pre-push ] && {
echo "expected .git/hooks/pre-push to be deleted"
exit 1
}
[ "git-lfs smudge -- %f" = "$(git config filter.lfs.smudge)" ]
[ "git-lfs clean -- %f" = "$(git config filter.lfs.clean)" ]
[ "git-lfs filter-process" = "$(git config filter.lfs.process)" ]
2015-07-10 16:43:20 +00:00
)
end_test