6951: import/export test suite runner broken

Revived the runner broken as of 3.0.0.
Notable changes:
1) instead of GRDB, using a named 'example' DB
in a dedicated GRAMPSHOME location
2) changed the format list to the more modern one
3) produced GRAMPS XML created manually from .gramps with gunzip
4) action "summary" no longer there, using the textual "summary" report

svn: r22744
This commit is contained in:
Vassilii Khachaturov 2013-07-28 12:04:03 +00:00
parent a393f26ed0
commit 7f4cc09821

View File

@ -1,8 +1,8 @@
#! /bin/sh #! /bin/sh
# #
# Import/export test for GRAMPS: # Import/export test for GRAMPS:
# o Import example XML data and create GRDB # o Import example XML data and create internal Gramps DB
# o Open produced GRDB, then # o Open produced Gramps DB, then
# * check data for integrity # * check data for integrity
# * output in all formats # * output in all formats
# o Check resulting XML for well-formedness and validate it # o Check resulting XML for well-formedness and validate it
@ -17,54 +17,74 @@ SRC_DIR=$TOP_DIR/src
PRG="python gramps.py" PRG="python gramps.py"
EXAMPLE_XML=$TOP_DIR/example/gramps/example.gramps EXAMPLE_XML=$TOP_DIR/example/gramps/example.gramps
OUT_FMT="gedcom gramps-xml gramps-pkg wft geneweb" OUT_FMT="csv ged gramps gpkg wft gw vcs vcf"
IN_FMT="gedcom gramps-xml gramps-pkg" IN_FMT="ged gramps gpkg"
DATA_DIR=$TEST_DIR/data DATA_DIR=$TEST_DIR/data
mkdir -p $DATA_DIR mkdir -p $DATA_DIR
if [ -f $DATA_DIR/example.grdb ]; then GRAMPSHOME=$DATA_DIR/grampshome
rm $DATA_DIR/example.grdb export GRAMPSHOME
echo ""
echo "+--------------------------------------------------------------"
echo "| GRAMPSHOME set to: $GRAMPSHOME "
echo "+--------------------------------------------------------------"
if [ -d $GRAMPSHOME/. ]; then
rm -rf $GRAMPSHOME
fi fi
echo "" echo ""
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
echo "| Import XML, write GRDB" echo "| Import XML, create Gramps DB 'example'"
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
OPTS="-i $EXAMPLE_XML -o $DATA_DIR/example.grdb" OPTS="-i $EXAMPLE_XML -C example"
(cd $SRC_DIR; $PRG $OPTS) (cd $SRC_DIR; $PRG $OPTS)
echo "" echo ""
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
echo "| Check GRDB for errors" echo "| Check the example DB for errors"
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
OPTS="-O $DATA_DIR/example.grdb -a tool -p name=check" OPTS="-O example -a tool -p name=check"
(cd $SRC_DIR; $PRG $OPTS) (cd $SRC_DIR; $PRG $OPTS)
echo "" echo ""
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
echo "| Open GRDB, write all other formats" echo "| Open the example DB, write all other formats"
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
OPTS="-O $DATA_DIR/example.grdb" OPTS="-O example"
for fmt in $OUT_FMT; do for fmt in $OUT_FMT; do
OPTS="$OPTS -o $DATA_DIR/example.$fmt -f $fmt" OPTS="$OPTS -e $DATA_DIR/example.$fmt -f $fmt"
done done
(cd $SRC_DIR; $PRG $OPTS) (cd $SRC_DIR; echo "$PRG $OPTS"; $PRG $OPTS)
echo "" echo ""
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
echo "| Validate produced XML" echo "| Validate produced XML"
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
RESULT_GRAMPS=$DATA_DIR/example.gramps
if [ -f $RESULT_GRAMPS ]; then
RESULT_XML=$DATA_DIR/example.xml
gunzip < $RESULT_GRAMPS > $RESULT_XML
else
echo "+--------------------------------------------------------------"
echo "| ERROR: $RESULT_GRAMPS not found"
echo "+--------------------------------------------------------------"
exit 1
fi
echo "* Regular well-formedness and DTD validation" echo "* Regular well-formedness and DTD validation"
xmllint --noout --valid $DATA_DIR/example.gramps-xml xmllint --noout --valid $RESULT_XML
echo "* Post-parsing DTD validation" echo "* Post-parsing DTD validation"
xmllint --noout --postvalid $DATA_DIR/example.gramps-xml xmllint --noout --postvalid $RESULT_XML
echo "* Validate against RelaxNG schema" echo "* Validate against RelaxNG schema"
xmllint --noout --relaxng $TOP_DIR/doc/grampsxml.rng $DATA_DIR/example.gramps-xml xmllint --noout --relaxng $TOP_DIR/data/grampsxml.rng $RESULT_XML
echo "" echo ""
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
echo "| Import all produced files and print summary" echo "| Import all produced files and print summary"
echo "+--------------------------------------------------------------" echo "+--------------------------------------------------------------"
for fmt in $IN_FMT; do for fmt in $IN_FMT; do
OPTS="-i $DATA_DIR/example.$fmt -f $fmt -a summary" EXPORTED_DATA=$DATA_DIR/example.$fmt
REPORT_TXT=$EXPORTED_DATA.report.txt
OPTS="-i $EXPORTED_DATA -f $fmt -a report -p name=summary,off=txt,of=$REPORT_TXT"
(cd $SRC_DIR; $PRG $OPTS) (cd $SRC_DIR; $PRG $OPTS)
cat $REPORT_TXT
done done