sfeed_update: tests for (overrided) functions that failed - sfeed_tests - sfeed tests and RSS and Atom files
(HTM) git clone git://git.codemadness.org/sfeed_tests
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 8bd574db409377383f6b2e7088b660b66aa5dd58
(DIR) parent 4cc753fc3d0df7213d9dd2c6711b053a0921b5e6
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sat, 16 Dec 2023 14:37:00 +0100
sfeed_update: tests for (overrided) functions that failed
check statuscode, stderr / log, statuscode and files.
work in progress...
Diffstat:
M input/sfeed_update/test.sh | 343 ++++++++++++++++++++++++++++++-
1 file changed, 335 insertions(+), 8 deletions(-)
---
(DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
@@ -362,23 +362,350 @@ feeds() {
echo "test_override_convertencoding: test OK" >&2
}
-test_override_fetch
+test_fail_fetch() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+fetch() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ grep -q "] 2 .* FAIL (FETCH)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (FETCH)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_fetch: test OK" >&2
+}
+
+test_fail_convertencoding() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+convertencoding() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ grep -q "] 2 .* FAIL (ENCODING)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (ENCODING)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_convertencoding: test OK" >&2
+}
+
+test_fail_parse() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+parse() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ grep -q "] 2 .* FAIL (PARSE)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (PARSE)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_parse: test OK" >&2
+}
+
+test_fail_filter() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+filter() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ grep -q "] 2 .* FAIL (FILTER)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (FILTER)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_filter: test OK" >&2
+}
+
+test_fail_merge() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+merge() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ # TODO: test both if there is new data (after filter stage) and no data.
+ # because if theres no data theres not even a merge attempted.
+
+ grep -q "] 2 .* FAIL (MERGE)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (MERGE)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_merge: test OK" >&2
+}
+
+test_fail_order() {
+ init_test
+
+ rc="$(mktemp)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ feedpath="$(mktemp -d)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1
+
+filter() {
+ test "\$1" = "2" && return 1
+ true
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "1" "file:///dev/null"
+ feed "2" "file:///dev/null"
+ feed "3" "file:///dev/null"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ linecount=$(wc -l < "$log_stdout")
+ linecount=$((linecount+0))
+ expect "2" "$linecount" "2 lines should be written to stdout"
+
+ linecount=$(wc -l < "$log_stderr")
+ linecount=$((linecount+0))
+ expect "1" "$linecount" "1 line should be written to stderr"
+
+ # TODO: test both if there is new data (after filter stage) and no data.
+ # because if theres no data theres not even a merge attempted.
+
+ grep -q "] 2 .* FAIL (ORDER)" < "$log_stderr"
+ expect "0" "$?" 'stderr should contain "FAIL (ORDER)"'
+
+ test -d "$feedpath"
+ expect "0" "$?" "directory should exist: $feedpath"
+
+ for i in 1 2 3; do
+ f="$feedpath/$i"
+ test -f "$f"
+ expect "0" "$?" "file should exist: $f"
+ done
+
+ cleanup
+
+ echo "test_fail_order: test OK" >&2
+}
+
+test_fail_fetch
+test_fail_convertencoding
+test_fail_parse
+test_fail_filter
+
+# TODO
+#test_fail_merge
+#test_fail_order
exit $?
+test_override_fetch
+exit $?
+
#test_override_convertencoding
#test_override_parse
#test_override_filter
#test_override_merge
#test_override_order
-#test_fail_fetch
-#test_fail_convertencoding
-#test_fail_parse
-#test_fail_filter
-#test_fail_merge
-#test_fail_order
-
exit $? # DEBUG
test_normal