From 040afeed2e627bee45563aa3903af70574b7faf0 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 5 Jul 2025 11:13:56 +0200 Subject: [PATCH] add tests for create one pdf --- scanbasic.bats | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ scanbasic.sh | 16 +++++++++--- 2 files changed, 83 insertions(+), 3 deletions(-) diff --git a/scanbasic.bats b/scanbasic.bats index aec0d11..5e57ad1 100755 --- a/scanbasic.bats +++ b/scanbasic.bats @@ -1,5 +1,10 @@ #!/usr/bin/bats +tiff2pdf() { + echo "$tiff2pdf_return" + return "$tiff2pdf_exit" +} + ocrmypdf() { echo "$ocrmypdf_return" return "$ocrmypdf_exit" @@ -15,6 +20,16 @@ mv() { return "$mv_exit" } +rm() { + echo "$rm_return" + return "$rm_exit" +} + +pdftk() { + echo "$pdftk_return" + return "$pdftk_exit" +} + setup() { load "/usr/lib/bats/bats-assert/load" load "/usr/lib/bats/bats-support/load" @@ -32,12 +47,27 @@ setup() { export -f ocrmypdf ocrmypdf_return= ocrmypdf_exit=0 + + export -f tiff2pdf + tiff2pdf_return= + tiff2pdf_exit=0 + + export -f rm + rm_return= + rm_exit=0 + + export -f pdftk + pdftk_return= + pdftk_exit=0 } teardown() { export -n qpdf export -n mv export -n ocrmypdf + export -n tiff2pdf + export -n rm + export -n pdftk } @test "should failure optimize input parameter is missing" { @@ -93,3 +123,43 @@ teardown() { assert_success } + +@test "should failure createonepdf missing output parameter" { + run createonepdf + + assert_failure + assert_line --index 0 "❌ ERROR: missing output" +} + +@test "should failure createonepdf tiff2pdf fails" { + tiff2pdf_exit=1 + + run createonepdf "testfile" + + assert_failure + assert_line --index 0 "❌ ERROR: could not convert tiff to pdf" +} + +@test "should failure createonepdf delete testfile fails" { + rm_exit=1 + + run createonepdf "testfile" + + assert_failure + assert_line --index 0 "❌ ERROR: could not delete scanned*.tiff" +} + +@test "should failure createonepdf pdftk fails" { + pdftk_exit=1 + + run createonepdf "testfile" + + assert_failure + assert_line --index 0 "❌ ERROR: could not convert into single testfile" +} + +@test "should success createonepdf" { + run createonepdf "testfile" + + assert_success +} diff --git a/scanbasic.sh b/scanbasic.sh index 637a9c9..69b541a 100644 --- a/scanbasic.sh +++ b/scanbasic.sh @@ -48,7 +48,8 @@ addocr() mv $output $input \ || errlog "could not rename $output to $input" \ || return $? - optimize $input || return $? + optimize $input \ + || return $? } createonepdf() @@ -61,20 +62,29 @@ createonepdf() command -v pdftk > /dev/null \ || errlog "command pdftk not found" \ || return $? + [ -n "$output" ] \ + || errlog "missing output" \ + || return $? + for i in scanned*.tiff; do tiff2pdf $i -o ${i/.tiff/.pdf} \ || errlog "could not convert tiff to pdf" \ || return $? - rm $i || errlog "could not delete $i" || return $? + rm $i \ + || errlog "could not delete $i" \ + || return $? done pdftk scanned*.pdf output $output \ || errlog "could not convert into single $output" \ || return $? + rm scanned*.pdf \ || errlog "could not remove scanned pdfs" \ || return $? - addocr $output || return $? + + addocr $output \ + || return $? } createpdf() -- 2.47.3