diff --git a/tests.sh b/tests.sh index 34b6491..231c33c 100755 --- a/tests.sh +++ b/tests.sh @@ -89,7 +89,7 @@ results=() for t in tests/*.sh; do tests+=("${t}") echo "========================= ${t} =========================" &>> tests.log - ${t} "${cmd}" "${version}" &>> tests.log + bash ${t} "${cmd}" "${version}" &>> tests.log results+=(${?}) done echo diff --git a/tests/apply-utf8.sh b/tests/apply-utf8.sh old mode 100755 new mode 100644 index 750dff9..056ad1d --- a/tests/apply-utf8.sh +++ b/tests/apply-utf8.sh @@ -31,7 +31,7 @@ cat << "DATA" > "tmp/${t}/${t}.transform" "newColumnName": "apply", "columnInsertIndex": 2, "baseColumnName": "b", - "expression": "grel:value.replace('2','٩(͡๏̯͡๏)۶')", + "expression": "grel:value.replace('2','⛲')", "onError": "set-to-blank" } ] @@ -41,7 +41,7 @@ DATA cat << "DATA" > "tmp/${t}/${t}.assert" a b apply c -1 2 ٩(͡๏̯͡๏)۶ 3 +1 2 ⛲ 3 0 0 0 0 $ \ \ ' DATA diff --git a/tests/apply.sh b/tests/apply.sh old mode 100755 new mode 100644 diff --git a/tests/create-csv-utf8.sh b/tests/create-csv-utf8.sh new file mode 100644 index 0000000..f159b04 --- /dev/null +++ b/tests/create-csv-utf8.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +⌨ code meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" --projectName "${t} biểu tượng cảm xúc ⛲" +${cmd} --export "${t} biểu tượng cảm xúc ⛲" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-csv.sh b/tests/create-csv.sh old mode 100755 new mode 100644 diff --git a/tests/create-json-utf8.sh b/tests/create-json-utf8.sh new file mode 100644 index 0000000..d7572d5 --- /dev/null +++ b/tests/create-json-utf8.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.json" +[ + { + "⌨": "⛲", + "code": "1F347", + "meaning": "FOUNTAIN" + }, + { + "⌨": "⛳", + "code": "1F349", + "meaning": "FLAG IN HOLE" + }, + { + "⌨": "⛵", + "code": "1F352", + "meaning": "SAILBOAT" + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +_ - ⌨ _ - code _ - meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.json" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-json.sh b/tests/create-json.sh new file mode 100644 index 0000000..bd2e884 --- /dev/null +++ b/tests/create-json.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.json" +[ + { + "a": 1, + "b": 2, + "c": 3 + }, + { + "a": 0, + "b": 0, + "c": 0 + }, + { + "a": "$", + "b": "\\", + "c": "\"" + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +_ - a _ - b _ - c +1 2 3 +0 0 0 +$ \ """" +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.json" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-ods-sheets-utf8.sh b/tests/create-ods-sheets-utf8.sh new file mode 100644 index 0000000..9a29c93 --- /dev/null +++ b/tests/create-ods-sheets-utf8.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.ods" "tmp/${t}/${t}.ods" + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +⌨ code meaning Column Column 5 Column 6 Column 7 Column 8 +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.ods" --sheets 1 +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-ods.sh b/tests/create-ods.sh new file mode 100644 index 0000000..7cf5b4b --- /dev/null +++ b/tests/create-ods.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.ods" "tmp/${t}/${t}.ods" +#a b c +#1 2 3 +#0 0 0 +#$ \ ' + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +a b c Column Column 5 Column 6 Column 7 Column 8 +1.0 2.0 3.0 +0.0 0.0 0.0 +$ \ ' +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.ods" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-tsv-utf8.sh b/tests/create-tsv-utf8.sh new file mode 100644 index 0000000..7bba400 --- /dev/null +++ b/tests/create-tsv-utf8.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.tsv" +⌨ code meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.tsv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.csv" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.csv" diff --git a/tests/export-filename.sh b/tests/create-tsv.sh old mode 100755 new mode 100644 similarity index 97% rename from tests/export-filename.sh rename to tests/create-tsv.sh index 7176adc..b6b7989 --- a/tests/export-filename.sh +++ b/tests/create-tsv.sh @@ -17,6 +17,8 @@ mkdir -p "tmp/${t}" cat << "DATA" > "tmp/${t}/${t}.tsv" a b c 1 2 3 +0 0 0 +$ \ ' DATA # ================================= ASSERTION ================================ # @@ -24,6 +26,8 @@ DATA cat << "DATA" > "tmp/${t}/${t}.assert" a,b,c 1,2,3 +0,0,0 +$,\,' DATA # ================================== ACTION ================================== # diff --git a/tests/create-txt-fixed-utf8.sh b/tests/create-txt-fixed-utf8.sh new file mode 100644 index 0000000..b33b3cf --- /dev/null +++ b/tests/create-txt-fixed-utf8.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.txt" +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +cat << "DATA" > "tmp/${t}/${t}.transform" +[ + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 1", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 2", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 3", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +Column 1 Column 2 Column 3 +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.txt" --columnWidths "6" --columnWidths "6" --columnWidths "60" +${cmd} --apply "tmp/${t}/${t}.transform" "${t}" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-txt-fixed.sh b/tests/create-txt-fixed.sh new file mode 100644 index 0000000..cb61e41 --- /dev/null +++ b/tests/create-txt-fixed.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.txt" +1 2 3 +mon tue wed +$2 $300 $1 +DATA + +cat << "DATA" > "tmp/${t}/${t}.transform" +[ + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 1", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 2", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "Column 3", + "expression": "grel:value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10 + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +Column 1 Column 2 Column 3 +1 2 3 +mon tue wed +$2 $300 $1 +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.txt" --columnWidths "6" --columnWidths "6" --columnWidths "6" +${cmd} --apply "tmp/${t}/${t}.transform" "${t}" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-txt.sh b/tests/create-txt.sh new file mode 100644 index 0000000..939bcd6 --- /dev/null +++ b/tests/create-txt.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.txt" +1 2 3 +mon tue wed +$2 $300 $1 +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +Column 1 +1 2 3 +mon tue wed +$2 $300 $1 +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.txt" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xls-sheets-utf8.sh b/tests/create-xls-sheets-utf8.sh new file mode 100644 index 0000000..e929f4f --- /dev/null +++ b/tests/create-xls-sheets-utf8.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.xls" "tmp/${t}/${t}.xls" + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +⌨ code meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xls" --sheets 1 +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xls.sh b/tests/create-xls.sh new file mode 100644 index 0000000..4c96205 --- /dev/null +++ b/tests/create-xls.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.xls" "tmp/${t}/${t}.xls" +#a b c +#1 2 3 +#0 0 0 +#$ \ ' + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +a b c +1.0 2.0 3.0 +0.0 0.0 0.0 +$ \ ' +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xls" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xlsx-sheets-utf8.sh b/tests/create-xlsx-sheets-utf8.sh new file mode 100644 index 0000000..e389417 --- /dev/null +++ b/tests/create-xlsx-sheets-utf8.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.xlsx" "tmp/${t}/${t}.xlsx" + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +⌨ code meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xlsx" --sheets 1 +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xlsx.sh b/tests/create-xlsx.sh new file mode 100644 index 0000000..e7436ba --- /dev/null +++ b/tests/create-xlsx.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + version="${2}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cp "data/example.xlsx" "tmp/${t}/${t}.xlsx" +#a b c +#1 2 3 +#0 0 0 +#$ \ ' + +# ================================= ASSERTION ================================ # + +if [[ "${version}" = "2.7" ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" +a b c +1.0 2.0 3.0 +0.0 0.0 0.0 +$ \ ' +DATA +else + #TODO + echo "https://github.com/opencultureconsulting/openrefine-client/issues/4" + exit 200 +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xlsx" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xml-utf8.sh b/tests/create-xml-utf8.sh new file mode 100644 index 0000000..b026ab3 --- /dev/null +++ b/tests/create-xml-utf8.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.xml" + + + + + 1F347 + FOUNTAIN + + + + 1F349 + FLAG IN HOLE + + + + 1F352 + SAILBOAT + + +DATA + +cat << "DATA" > "tmp/${t}/${t}.transform" +[ + { + "op": "core/column-removal", + "columnName": "root" + }, + { + "op": "core/column-removal", + "columnName": "root - record" + }, + { + "op": "core/row-removal", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "Blank Rows", + "expression": "(filter(row.columnNames,cn,isNonBlank(cells[cn].value)).length()==0).toString()", + "columnName": "", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "true", + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + } + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +root - record - icon root - record - code root - record - meaning +⛲ 1F347 FOUNTAIN +⛳ 1F349 FLAG IN HOLE +⛵ 1F352 SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xml" +${cmd} --apply "tmp/${t}/${t}.transform" "${t}" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-xml.sh b/tests/create-xml.sh new file mode 100644 index 0000000..bea6b7e --- /dev/null +++ b/tests/create-xml.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.xml" + + + + 1 + 2 + 3 + + + 0 + 0 + 0 + + + $ + \ + ' + + +DATA + +cat << "DATA" > "tmp/${t}/${t}.transform" +[ + { + "op": "core/column-removal", + "columnName": "root" + }, + { + "op": "core/column-removal", + "columnName": "root - record" + }, + { + "op": "core/row-removal", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "Blank Rows", + "expression": "(filter(row.columnNames,cn,isNonBlank(cells[cn].value)).length()==0).toString()", + "columnName": "", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "true", + "l": "true" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + } + } +] +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +root - record - a root - record - b root - record - c +1 2 3 +0 0 0 +$ \ ' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.xml" +${cmd} --apply "tmp/${t}/${t}.transform" "${t}" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/data/example.ods b/tests/data/example.ods new file mode 100644 index 0000000..abd5abd Binary files /dev/null and b/tests/data/example.ods differ diff --git a/tests/data/example.xls b/tests/data/example.xls new file mode 100644 index 0000000..cab9cd9 Binary files /dev/null and b/tests/data/example.xls differ diff --git a/tests/data/example.xlsx b/tests/data/example.xlsx new file mode 100644 index 0000000..484eb97 Binary files /dev/null and b/tests/data/example.xlsx differ diff --git a/tests/delete-utf8.sh b/tests/delete-utf8.sh old mode 100755 new mode 100644 index 2d88f7f..c2c1845 --- a/tests/delete-utf8.sh +++ b/tests/delete-utf8.sh @@ -26,8 +26,8 @@ DATA # ================================== ACTION ================================== # -${cmd} --create "tmp/${t}/${t}.csv" --projectName "${t} biểu tượng cảm xúc 🍉" -${cmd} --delete "${t} biểu tượng cảm xúc 🍉" +${cmd} --create "tmp/${t}/${t}.csv" --projectName "${t} biểu tượng cảm xúc ⛲" +${cmd} --delete "${t} biểu tượng cảm xúc ⛲" ${cmd} --list | grep "${t}" | cut -d ':' -f 2 > "tmp/${t}/${t}.output" # =================================== TEST =================================== # diff --git a/tests/delete.sh b/tests/delete.sh old mode 100755 new mode 100644 diff --git a/tests/download.sh b/tests/download.sh old mode 100755 new mode 100644 diff --git a/tests/export-csv-utf8.sh b/tests/export-csv-utf8.sh new file mode 100644 index 0000000..fb3fa5e --- /dev/null +++ b/tests/export-csv-utf8.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.tsv" +🔣 code meaning +🍇 1F347 GRAPES +🍉 1F349 WATERMELON +🍒 1F352 CHERRIES +🍓 1F353 STRAWBERRY +🍍 1F34D PINEAPPLE +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +🔣,code,meaning +🍇,1F347,GRAPES +🍉,1F349,WATERMELON +🍒,1F352,CHERRIES +🍓,1F353,STRAWBERRY +🍍,1F34D,PINEAPPLE +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.tsv" +${cmd} --export "${t}" --output "tmp/${t}/${t} biểu tượng cảm xúc 🍉.csv" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t} biểu tượng cảm xúc 🍉.csv" diff --git a/tests/export-filename-utf8.sh b/tests/export-csv.sh old mode 100755 new mode 100644 similarity index 82% rename from tests/export-filename-utf8.sh rename to tests/export-csv.sh index 9c74d1c..b6b7989 --- a/tests/export-filename-utf8.sh +++ b/tests/export-csv.sh @@ -17,6 +17,8 @@ mkdir -p "tmp/${t}" cat << "DATA" > "tmp/${t}/${t}.tsv" a b c 1 2 3 +0 0 0 +$ \ ' DATA # ================================= ASSERTION ================================ # @@ -24,13 +26,15 @@ DATA cat << "DATA" > "tmp/${t}/${t}.assert" a,b,c 1,2,3 +0,0,0 +$,\,' DATA # ================================== ACTION ================================== # ${cmd} --create "tmp/${t}/${t}.tsv" -${cmd} --export "${t}" --output "tmp/${t}/biểu tượng cảm xúc 🍉.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.csv" # =================================== TEST =================================== # -diff -u "tmp/${t}/${t}.assert" "tmp/${t}/biểu tượng cảm xúc 🍉.csv" +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.csv" diff --git a/tests/export-html-utf8.sh b/tests/export-html-utf8.sh new file mode 100644 index 0000000..601a2bc --- /dev/null +++ b/tests/export-html-utf8.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ ${2} ]]; then + majorversion="${2%%.*}" +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +if [[ "$majorversion" = 2 ]]; then + cat << "DATA" > "tmp/${t}/${t}.assert" + + +export-html-utf8 + + + + + + + + +
codemeaning
1F347FOUNTAIN
1F349FLAG IN HOLE
1F352SAILBOAT
+ + +DATA +else + cat << "DATA" > "tmp/${t}/${t}.assert" + + +export-html-utf8 + + + + + + + + +
codemeaning
1F347FOUNTAIN
1F349FLAG IN HOLE
1F352SAILBOAT
+ + +DATA +fi + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.html" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.html" diff --git a/tests/export-html.sh b/tests/export-html.sh new file mode 100644 index 0000000..1f9630c --- /dev/null +++ b/tests/export-html.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" + + +export-html + + + + + + + + +
abc
123
000
$\'
+ + +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.html" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.html" diff --git a/tests/export-ods-utf8.sh b/tests/export-ods-utf8.sh new file mode 100644 index 0000000..4f720f8 --- /dev/null +++ b/tests/export-ods-utf8.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,"FLAG IN HOLE" +⛵,1F352,SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.ods" +(cd tmp/${t} && + ssconvert -S ${t}.ods ${t}.csv && + mv ${t}.csv.1 ${t}.output) + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/export-ods.sh b/tests/export-ods.sh new file mode 100644 index 0000000..07ae030 --- /dev/null +++ b/tests/export-ods.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi +if [[ -z "$(command -v ssconvert 2> /dev/null)" ]] ; then + echo 1>&2 "ERROR: This test requires ssconvert (gnumeric)" + exit 127 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.ods" +(cd tmp/${t} && + ssconvert -S ${t}.ods ${t}.csv && + mv ${t}.csv.1 ${t}.output) + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/export-tsv-utf8.sh b/tests/export-tsv-utf8.sh new file mode 100644 index 0000000..80f9ca4 --- /dev/null +++ b/tests/export-tsv-utf8.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +🔣,code,meaning +🍇,1F347,GRAPES +🍉,1F349,WATERMELON +🍒,1F352,CHERRIES +🍓,1F353,STRAWBERRY +🍍,1F34D,PINEAPPLE +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +🔣 code meaning +🍇 1F347 GRAPES +🍉 1F349 WATERMELON +🍒 1F352 CHERRIES +🍓 1F353 STRAWBERRY +🍍 1F34D PINEAPPLE +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.tsv" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.tsv" diff --git a/tests/export-tsv.sh b/tests/export-tsv.sh new file mode 100644 index 0000000..8b9d25c --- /dev/null +++ b/tests/export-tsv.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +a b c +1 2 3 +0 0 0 +$ \ ' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.tsv" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.tsv" diff --git a/tests/export-utf8.sh b/tests/export-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/export-xls-utf8.sh b/tests/export-xls-utf8.sh new file mode 100644 index 0000000..732a32f --- /dev/null +++ b/tests/export-xls-utf8.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.xls" +(cd tmp/${t} && + ssconvert -S ${t}.xls ${t}.csv && + mv ${t}.csv ${t}.output) + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/create-utf8.sh b/tests/export-xls.sh old mode 100755 new mode 100644 similarity index 78% rename from tests/create-utf8.sh rename to tests/export-xls.sh index 0fd14e4..0116b5e --- a/tests/create-utf8.sh +++ b/tests/export-xls.sh @@ -16,20 +16,27 @@ mkdir -p "tmp/${t}" cat << "DATA" > "tmp/${t}/${t}.csv" a,b,c -🍉,🍒,🍓 +1,2,3 +0,0,0 +$,\,' DATA # ================================= ASSERTION ================================ # cat << "DATA" > "tmp/${t}/${t}.assert" -a b c -🍉 🍒 🍓 +a,b,c +1,2,3 +0,0,0 +$,\,' DATA # ================================== ACTION ================================== # -${cmd} --create "tmp/${t}/${t}.csv" --projectName "${t} biểu tượng cảm xúc 🍉" -${cmd} --export "${t} biểu tượng cảm xúc 🍉" --output "tmp/${t}/${t}.output" +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.xls" +(cd tmp/${t} && + ssconvert -S ${t}.xls ${t}.csv && + mv ${t}.csv ${t}.output) # =================================== TEST =================================== # diff --git a/tests/export-xlsx-utf8.sh b/tests/export-xlsx-utf8.sh new file mode 100644 index 0000000..927dec8 --- /dev/null +++ b/tests/export-xlsx-utf8.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +⌨,code,meaning +⛲,1F347,FOUNTAIN +⛳,1F349,FLAG IN HOLE +⛵,1F352,SAILBOAT +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.xlsx" +(cd tmp/${t} && + ssconvert -S ${t}.xlsx ${t}.csv && + mv ${t}.csv ${t}.output) + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" + + diff --git a/tests/export-xlsx.sh b/tests/export-xlsx.sh new file mode 100644 index 0000000..a106efc --- /dev/null +++ b/tests/export-xlsx.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --output "tmp/${t}/${t}.xlsx" +(cd tmp/${t} && + ssconvert -S ${t}.xlsx ${t}.csv && + mv ${t}.csv ${t}.output) + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/export.sh b/tests/export.sh old mode 100755 new mode 100644 index 1980555..b2a78bd --- a/tests/export.sh +++ b/tests/export.sh @@ -17,6 +17,8 @@ mkdir -p "tmp/${t}" cat << "DATA" > "tmp/${t}/${t}.csv" a,b,c 1,2,3 +0,0,0 +$,\,' DATA # ================================= ASSERTION ================================ # @@ -24,6 +26,8 @@ DATA cat << "DATA" > "tmp/${t}/${t}.assert" a b c 1 2 3 +0 0 0 +$ \ ' DATA # ================================== ACTION ================================== # diff --git a/tests/format-create.sh b/tests/format-create.sh new file mode 100644 index 0000000..6a794f2 --- /dev/null +++ b/tests/format-create.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +Column 1 +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" --format "line-based" +${cmd} --export "${t}" --output "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/format-export.sh b/tests/format-export.sh new file mode 100644 index 0000000..48283c4 --- /dev/null +++ b/tests/format-export.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# =============================== ENVIRONMENT ================================ # + +if [[ ${1} ]]; then + cmd="${1}" +else + echo 1>&2 "execute tests.sh to run all tests"; exit 1 +fi + +t="$(basename "${BASH_SOURCE[0]}" .sh)" +cd "${BASH_SOURCE%/*}/" || exit 1 +mkdir -p "tmp/${t}" + +# =================================== DATA =================================== # + +cat << "DATA" > "tmp/${t}/${t}.csv" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================= ASSERTION ================================ # + +cat << "DATA" > "tmp/${t}/${t}.assert" +a,b,c +1,2,3 +0,0,0 +$,\,' +DATA + +# ================================== ACTION ================================== # + +${cmd} --create "tmp/${t}/${t}.csv" +${cmd} --export "${t}" --format "csv" > "tmp/${t}/${t}.output" + +# =================================== TEST =================================== # + +diff -u "tmp/${t}/${t}.assert" "tmp/${t}/${t}.output" diff --git a/tests/help.sh b/tests/help.sh old mode 100755 new mode 100644 index e768159..c427361 --- a/tests/help.sh +++ b/tests/help.sh @@ -15,154 +15,12 @@ mkdir -p "tmp/${t}" # ================================= ASSERTION ================================ # cat << "DATA" > "tmp/${t}/${t}.assert" -Usage: refine.py [--help | OPTIONS] - Script to provide a command line interface to an OpenRefine server. - -Options: - -h, --help show this help message and exit - - Connection options: - -H 127.0.0.1, --host=127.0.0.1 - OpenRefine hostname (default: 127.0.0.1) - -P 3333, --port=3333 - OpenRefine port (default: 3333) - - Commands: - -c [FILE], --create=[FILE] - Create project from file. The filename ending (e.g. - .csv) defines the input format - (csv,tsv,xml,json,txt,xls,xlsx,ods) - -l, --list List projects - --download=[URL] Download file from URL (e.g. example data). Combine - with --output to specify a filename. - - Commands with argument [PROJECTID/PROJECTNAME]: - -d, --delete Delete project - -f [FILE], --apply=[FILE] - Apply JSON rules to OpenRefine project - -E, --export Export project in tsv format to stdout. - -o [FILE], --output=[FILE] - Export project to file. The filename ending (e.g. - .tsv) defines the output format - (csv,tsv,xls,xlsx,html) - --template=[STRING] - Export project with templating. Provide (big) text - string that you enter in the *row template* textfield - in the export/templating menu in the browser app) - --info show project metadata - - General options: - --format=FILE_FORMAT - Override file detection (import: - csv,tsv,xml,json,line-based,fixed-width,xls,xlsx,ods; - export: csv,tsv,html,xls,xlsx,ods) - - Create options: - --columnWidths=COLUMNWIDTHS - (txt/fixed-width), please provide widths in multiple - arguments, e.g. --columnWidths=7 --columnWidths=5 - --encoding=ENCODING - (csv,tsv,txt), please provide short encoding name - (e.g. UTF-8) - --guessCellValueTypes=true/false - (xml,csv,tsv,txt,json, default: false) - --headerLines=HEADERLINES - (csv,tsv,txt/fixed-width,xls,xlsx,ods), default: 1, - default txt/fixed-width: 0 - --ignoreLines=IGNORELINES - (csv,tsv,txt,xls,xlsx,ods), default: -1 - --includeFileSources=true/false - (all formats), default: false - --limit=LIMIT (all formats), default: -1 - --linesPerRow=LINESPERROW - (txt/line-based), default: 1 - --processQuotes=true/false - (csv,tsv), default: true - --projectName=PROJECTNAME - (all formats), default: filename - --projectTags=PROJECTTAGS - (all formats), please provide tags in multiple - arguments, e.g. --projectTags=beta - --projectTags=client1 - --recordPath=RECORDPATH - (xml,json), please provide path in multiple arguments, - e.g. /collection/record/ should be entered: - --recordPath=collection --recordPath=record, default - xml: root element, default json: _ _ - --separator=SEPARATOR - (csv,tsv), default csv: , default tsv: \t - --sheets=SHEETS (xls,xlsx,ods), please provide sheets in multiple - arguments, e.g. --sheets=0 --sheets=1, default: 0 - (first sheet) - --skipDataLines=SKIPDATALINES - (csv,tsv,txt,xls,xlsx,ods), default: 0, default line- - based: -1 - --storeBlankCellsAsNulls=true/false - (csv,tsv,txt,xls,xlsx,ods), default: true - --storeBlankRows=true/false - (csv,tsv,txt,xls,xlsx,ods), default: true - --storeEmptyStrings=true/false - (xml,json), default: true - --trimStrings=true/false - (xml,json), default: false - - Templating options: - --mode=row-based/record-based - engine mode (default: row-based) - --prefix=PREFIX text string that you enter in the *prefix* textfield - in the browser app - --rowSeparator=ROWSEPARATOR - text string that you enter in the *row separator* - textfield in the browser app - --suffix=SUFFIX text string that you enter in the *suffix* textfield - in the browser app - --filterQuery=REGEX - Simple RegEx text filter on filterColumn, e.g. ^12015$ - --filterColumn=COLUMNNAME - column name for filterQuery (default: name of first - column) - --facets=FACETS facets config in json format (may be extracted with - browser dev tools in browser app) - --splitToFiles=true/false - will split each row/record into a single file; it - specifies a presumably unique character series for - splitting; --prefix and --suffix will be applied to - all files; filename-prefix can be specified with - --output (default: %Y%m%d) - --suffixById=true/false - enhancement option for --splitToFiles; will generate - filename-suffix from values in key column - -Example data: - --download "https://git.io/fj5hF" --output=duplicates.csv - --download "https://git.io/fj5ju" --output=duplicates-deletion.json - -Basic commands: - --list # list all projects - --list -H 127.0.0.1 -P 80 # specify hostname and port - --create duplicates.csv # create new project from file - --info "duplicates" # show project metadata - --apply duplicates-deletion.json "duplicates" # apply rules in file to project - --export "duplicates" # export project to terminal in tsv format - --export --output=deduped.xls "duplicates" # export project to file in xls format - --delete "duplicates" # delete project - -Some more examples: - --info 1234567890123 # specify project by id - --create example.tsv --encoding=UTF-8 - --create example.xml --recordPath=collection --recordPath=record - --create example.json --recordPath=_ --recordPath=_ - --create example.xlsx --sheets=0 - --create example.ods --sheets=0 - -Example for Templating Export: - Cf. https://github.com/opencultureconsulting/openrefine-client#advanced-templating DATA # ================================== ACTION ================================== # -${cmd} --help > "tmp/${t}/${t}.output" +${cmd} --help | sed '3q;d' > "tmp/${t}/${t}.output" # =================================== TEST =================================== # diff --git a/tests/info-utf8.sh b/tests/info-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/info.sh b/tests/info.sh old mode 100755 new mode 100644 diff --git a/tests/list.sh b/tests/list.sh old mode 100755 new mode 100644 diff --git a/tests/template b/tests/template index ade739e..83c23e9 100755 --- a/tests/template +++ b/tests/template @@ -8,7 +8,8 @@ else echo 1>&2 "execute tests.sh to run all tests"; exit 1 fi #if [[ ${2} ]]; then -# version="${2##*.}" +# version="${2}" +# majorversion="${2%%.*}" #fi t="$(basename "${BASH_SOURCE[0]}" .sh)" @@ -42,7 +43,7 @@ DATA # ================================= ASSERTION ================================ # -#if [[ "$version" >= 2 ]]; then +#if [[ "${version}" = "2.7" ]]; then cat << "DATA" > "tmp/${t}/${t}.assert" a b apply c 1 2 TEST 3 diff --git a/tests/templating-filter-utf8.sh b/tests/templating-filter-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/templating-filter.sh b/tests/templating-filter.sh old mode 100755 new mode 100644 diff --git a/tests/templating-split-id-utf8.sh b/tests/templating-split-id-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/templating-split-id.sh b/tests/templating-split-id.sh old mode 100755 new mode 100644 diff --git a/tests/templating-split-utf8.sh b/tests/templating-split-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/templating-split.sh b/tests/templating-split.sh old mode 100755 new mode 100644 diff --git a/tests/templating-utf8.sh b/tests/templating-utf8.sh old mode 100755 new mode 100644 diff --git a/tests/templating.sh b/tests/templating.sh old mode 100755 new mode 100644 diff --git a/tests/usage.sh b/tests/usage.sh old mode 100755 new mode 100644 index ccce91a..75cd513 --- a/tests/usage.sh +++ b/tests/usage.sh @@ -15,13 +15,12 @@ mkdir -p "tmp/${t}" # ================================= ASSERTION ================================ # cat << "DATA" > "tmp/${t}/${t}.assert" -Usage: refine.py [--help | OPTIONS] - +Usage: DATA # ================================== ACTION ================================== # -${cmd} > "tmp/${t}/${t}.output" +${cmd} | head -n 1 | cut -c 1-6 > "tmp/${t}/${t}.output" # =================================== TEST =================================== #