[Erp5-report] r19392 - /erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 19 15:56:41 CET 2008
Author: vincent
Date: Tue Feb 19 15:56:41 2008
New Revision: 19392
URL: http://svn.erp5.org?rev=19392&view=rev
Log:
Add a script to ease upgrade unit testing.
Added:
erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh (with props)
Added: erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh?rev=19392&view=auto
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh (added)
+++ erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh Tue Feb 19 15:56:41 2008
@@ -1,0 +1,117 @@
+#!/bin/sh
+##############################################################################
+#
+# Copyright (c) 2008 Nexedi SARL and Contributors. All Rights Reserved.
+# Vincent Pelletier <vincent at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+if [ $# -lt 2 ]; then
+ echo <<EOF
+Usage: $0 from to [argument [...]]
+
+ Upgrade a "source" site with "destination" products and business
+ templates.
+ Everything is done in working directory.
+
+ from
+ Path containint "source" code revision.
+
+ to
+ Path containing "destination" code revision.
+
+ arguments
+ Arguments to provide to runUnitTest.py
+EOF
+fi
+
+SOURCE_REVISION="$1"
+shift
+DESTINATION_REVISION="$1"
+shift
+ARGS="$*"
+
+RUN_UNIT_TESTS="Products/ERP5Type/tests/runUnitTest.py"
+COPY_PATH_LIST="Products bt5"
+
+get_revision() {
+ local REVISION="$1"
+ local COPY_PATH
+ for COPY_PATH in $COPY_PATH_LIST; do
+ rm -f "$COPY_PATH"
+ ln -s "$REVISION/$COPY_PATH" "$COPY_PATH"
+ done
+}
+
+error() {
+ echo "$*"
+ exit 1
+}
+
+check_directory() {
+ local DIRECTORY="$1"
+ if [ ! -d "$DIRECTORY" ]; then
+ error "Missing directory: '$DIRECTORY'"
+ fi
+}
+
+check_run_unit_tests() {
+ local RUN_UNIT_TESTS="$1"
+ if [ ! -x "$RUN_UNIT_TESTS" ]; then
+ error "Not executable: '$RUN_UNIT_TESTS'"
+ fi
+}
+
+check_revision() {
+ local DIRECTORY="$1"
+ local COPY_PATH
+ check_directory "$DIRECTORY"
+ for COPY_PATH in $COPY_PATH_LIST; do
+ check_directory "$DIRECTORY/$COPY_PATH"
+ done
+ check_run_unit_tests "$DIRECTORY/$RUN_UNIT_TESTS"
+}
+
+# Sanity checks
+check_revision "$SOURCE_REVISION"
+check_revision "$DESTINATION_REVISION"
+
+# Get first revision
+get_revision "$SOURCE_REVISION"
+# Create site and save
+echo "Creating initial version $SOURCE_REVISION_1..."
+set -x
+"$RUN_UNIT_TESTS" --save --portal_id portal $ARGS
+set +x
+
+# Update to second revision
+checkout_revision "$DESTINATION_REVISION"
+echo "Updating to version $DESTINATION_REVISION..."
+set -x
+"$RUN_UNIT_TESTS" --save --load --portal_id portal --update_business_templates $ARGS
+set +x
+
+echo "All done. You can run unit tests with command:"
+echo "\"$RUN_UNIT_TESTS\" --load --portal_id portal $ARGS"
+
Propchange: erp5/trunk/products/ERP5Type/tests/prepareUpdateUnitTest.sh
------------------------------------------------------------------------------
svn:executable = *
More information about the Erp5-report
mailing list