[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