From 72cc87aa4711ed913d1065482d59f5d66d8e44da Mon Sep 17 00:00:00 2001 From: deadc0de6 Date: Tue, 11 Aug 2020 18:59:58 +0200 Subject: [PATCH] more tests --- tests-ng/install-empty.sh | 15 +++++-- tests-ng/install-ignore.sh | 2 +- tests-ng/install-to-temp.sh | 89 +++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 4 deletions(-) create mode 100755 tests-ng/install-to-temp.sh diff --git a/tests-ng/install-empty.sh b/tests-ng/install-empty.sh index 535d540..6773ca7 100755 --- a/tests-ng/install-empty.sh +++ b/tests-ng/install-empty.sh @@ -7,7 +7,7 @@ # # exit on first error -#set -e +set -e # all this crap to get current path rl="readlink -f" @@ -68,17 +68,26 @@ dotfiles: f_z: src: dst: + f_l: + src: + dst: + link: link + f_lc: + src: + dst: + link: link_children profiles: p1: dotfiles: - f_x - f_y - f_z - + - f_l + - f_lc _EOF echo "[+] install" -cd ${ddpath} | ${bin} install -c ${cfg} -p p1 --verbose | grep '^3 dotfile(s) installed.$' +cd ${ddpath} | ${bin} install -c ${cfg} -p p1 --verbose | grep '^5 dotfile(s) installed.$' [ "$?" != "0" ] && exit 1 ## CLEANING diff --git a/tests-ng/install-ignore.sh b/tests-ng/install-ignore.sh index 46f5708..adc4298 100755 --- a/tests-ng/install-ignore.sh +++ b/tests-ng/install-ignore.sh @@ -82,7 +82,7 @@ echo "new data" > ${basedir}/dotfiles/${tmpd}/readmes/README.md # install rm -rf ${tmpd} echo "[+] install normal" -cd ${ddpath} | ${bin} install -c ${cfg} --verbose +cd ${ddpath} | ${bin} install --showdiff -c ${cfg} --verbose [ "$?" != "0" ] && exit 1 nb=`find ${tmpd} -iname 'README.md' | wc -l` echo "(1) found ${nb} README.md file(s)" diff --git a/tests-ng/install-to-temp.sh b/tests-ng/install-to-temp.sh new file mode 100755 index 0000000..902920b --- /dev/null +++ b/tests-ng/install-to-temp.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# author: deadc0de6 (https://github.com/deadc0de6) +# Copyright (c) 2019, deadc0de6 +# +# test install to temp +# returns 1 in case of error +# + +# exit on first error +set -e + +# all this crap to get current path +rl="readlink -f" +if ! ${rl} "${0}" >/dev/null 2>&1; then + rl="realpath" + + if ! hash ${rl}; then + echo "\"${rl}\" not found !" && exit 1 + fi +fi +cur=$(dirname "$(${rl} "${0}")") + +#hash dotdrop >/dev/null 2>&1 +#[ "$?" != "0" ] && echo "install dotdrop to run tests" && exit 1 + +#echo "called with ${1}" + +# dotdrop path can be pass as argument +ddpath="${cur}/../" +[ "${1}" != "" ] && ddpath="${1}" +[ ! -d ${ddpath} ] && echo "ddpath \"${ddpath}\" is not a directory" && exit 1 + +export PYTHONPATH="${ddpath}:${PYTHONPATH}" +bin="python3 -m dotdrop.dotdrop" +hash coverage 2>/dev/null && bin="coverage run -a --source=dotdrop -m dotdrop.dotdrop" || true + +echo "dotdrop path: ${ddpath}" +echo "pythonpath: ${PYTHONPATH}" + +# get the helpers +source ${cur}/helpers + +echo -e "$(tput setaf 6)==> RUNNING $(basename $BASH_SOURCE) <==$(tput sgr0)" + +################################################################ +# this is the test +################################################################ + +# dotdrop directory +basedir=`mktemp -d --suffix='-dotdrop-tests' || mktemp -d` +mkdir -p ${basedir}/dotfiles +tmpd=`mktemp -d --suffix='-dotdrop-tests' || mktemp -d` +echo "[+] dotdrop dir: ${basedir}" +echo "[+] dotpath dir: ${basedir}/dotfiles" + +# create the config file +cfg="${basedir}/config.yaml" +cat > ${cfg} << _EOF +config: + backup: true + create: true + dotpath: dotfiles +dotfiles: + f_x: + src: x + dst: ${tmpd}/x + f_y: + src: y + dst: ${tmpd}/y + link: link +profiles: + p1: + dotfiles: + - f_x + - f_y +_EOF + +echo 'test_x' > ${basedir}/dotfiles/x +echo 'test_y' > ${basedir}/dotfiles/y + +echo "[+] install" +cd ${ddpath} | ${bin} install -c ${cfg} -p p1 --showdiff --verbose --temp | grep '^2 dotfile(s) installed.$' +[ "$?" != "0" ] && exit 1 + +## CLEANING +rm -rf ${basedir} + +echo "OK" +exit 0