Merge pull request #58 from janschulz/jinja_processing
Excluding yadm.md changes (these will happen during a release)pull/64/head
commit
fd6fa8c923
@ -0,0 +1,151 @@ |
||||
load common |
||||
load_fixtures |
||||
status=;output=; #; populated by bats run() |
||||
|
||||
IN_REPO=(alt* "dir one") |
||||
export TEST_TREE_WITH_ALT=1 |
||||
|
||||
|
||||
setup() { |
||||
destroy_tmp |
||||
build_repo "${IN_REPO[@]}" |
||||
} |
||||
|
||||
|
||||
function test_alt() { |
||||
local alt_type="$1" |
||||
local test_overwrite="$2" |
||||
local auto_alt="$3" |
||||
|
||||
#; detemine test parameters |
||||
case $alt_type in |
||||
base) |
||||
real_name="alt-jinja" |
||||
file_content_match="-${T_SYS}-${T_HOST}-${T_USER}" |
||||
;; |
||||
override_all) |
||||
real_name="alt-jinja" |
||||
file_content_match="custom_class-custom_system-custom_host-custom_user" |
||||
;; |
||||
esac |
||||
|
||||
if [ "$test_overwrite" = "true" ] ; then |
||||
#; create incorrect links (to overwrite) |
||||
echo "BAD_CONTENT" "$T_DIR_WORK/$real_name" |
||||
else |
||||
#; verify real file doesn't already exist |
||||
if [ -e "$T_DIR_WORK/$real_name" ] ; then |
||||
echo "ERROR: real file already exists before running yadm" |
||||
return 1 |
||||
fi |
||||
fi |
||||
|
||||
#; configure yadm.auto_alt=false |
||||
if [ "$auto_alt" = "false" ]; then |
||||
git config --file="$T_YADM_CONFIG" yadm.auto-alt false |
||||
fi |
||||
|
||||
#; run yadm (alt or status) |
||||
if [ -z "$auto_alt" ]; then |
||||
run "${T_YADM_Y[@]}" alt |
||||
#; validate status and output |
||||
if [ "$status" != 0 ] || [[ ! "$output" =~ Creating.+$real_name ]]; then |
||||
echo "OUTPUT:$output" |
||||
echo "ERROR: Could not confirm status and output of alt command" |
||||
return 1; |
||||
fi |
||||
else |
||||
#; running any passed through Git command should trigger auto-alt |
||||
run "${T_YADM_Y[@]}" status |
||||
if [ -n "$auto_alt" ] && [[ "$output" =~ Creating.+$real_name ]]; then |
||||
echo "ERROR: Reporting of jinja processing should not happen" |
||||
return 1 |
||||
fi |
||||
fi |
||||
|
||||
#; validate link content |
||||
if [[ "$alt_type" =~ none ]] || [ "$auto_alt" = "false" ]; then |
||||
#; no real file should be present |
||||
if [ -L "$T_DIR_WORK/$real_name" ] ; then |
||||
echo "ERROR: Real file should not exist" |
||||
return 1 |
||||
fi |
||||
else |
||||
#; correct real file should be present |
||||
local file_content |
||||
file_content=$(cat "$T_DIR_WORK/$real_name") |
||||
if [ "$file_content" != "$file_content_match" ]; then |
||||
echo "file_content: ${file_content}" |
||||
echo "expected_content: ${file_content_match}" |
||||
echo "ERROR: Link content is not correct" |
||||
return 1 |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
@test "Command 'alt' (select jinja)" { |
||||
echo " |
||||
When the command 'alt' is provided |
||||
and file matches ##yadm_tmpl |
||||
Report jinja template processing |
||||
Verify that the correct content is written |
||||
Exit with 0 |
||||
" |
||||
|
||||
test_alt 'base' 'false' '' |
||||
} |
||||
|
||||
@test "Command 'auto-alt' (enabled)" { |
||||
echo " |
||||
When a command possibly changes the repo |
||||
and auto-alt is configured true |
||||
and file matches ##yadm_tmpl |
||||
automatically process alternates |
||||
report no linking (not loud) |
||||
Verify that the correct content is written |
||||
" |
||||
|
||||
test_alt 'base' 'false' 'true' |
||||
} |
||||
|
||||
@test "Command 'auto-alt' (disabled)" { |
||||
echo " |
||||
When a command possibly changes the repo |
||||
and auto-alt is configured false |
||||
and file matches ##yadm_tmpl |
||||
Report no jinja template processing |
||||
Verify no content |
||||
" |
||||
|
||||
test_alt 'base' 'false' 'false' |
||||
} |
||||
|
||||
@test "Command 'alt' (overwrite existing content)" { |
||||
echo " |
||||
When the command 'alt' is provided |
||||
and file matches ##yadm_tmpl |
||||
and the real file exists, and is wrong |
||||
Report jinja template processing |
||||
Verify that the correct content is written |
||||
Exit with 0 |
||||
" |
||||
|
||||
test_alt 'base' 'true' '' |
||||
} |
||||
|
||||
@test "Command 'alt' (overwritten settings)" { |
||||
echo " |
||||
When the command 'alt' is provided |
||||
and file matches ##yadm_tmpl |
||||
after setting local.* |
||||
Report jinja template processing |
||||
Verify that the correct content is written |
||||
Exit with 0 |
||||
" |
||||
|
||||
GIT_DIR="$T_DIR_REPO" git config local.os custom_system |
||||
GIT_DIR="$T_DIR_REPO" git config local.user custom_user |
||||
GIT_DIR="$T_DIR_REPO" git config local.host custom_host |
||||
GIT_DIR="$T_DIR_REPO" git config local.class custom_class |
||||
test_alt 'override_all' 'false' '' |
||||
} |
Loading…
Reference in new issue