]> scripts.mit.edu Git - wizard.git/commitdiff
Reduce duplication in test scripts, more logging.
authorEdward Z. Yang <ezyang@mit.edu>
Wed, 25 Nov 2009 17:11:14 +0000 (12:11 -0500)
committerEdward Z. Yang <ezyang@mit.edu>
Wed, 25 Nov 2009 17:11:38 +0000 (12:11 -0500)
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
14 files changed:
TODO
tests/mediawiki-backup-restore-test.sh
tests/mediawiki-continue-upgrade-test.sh
tests/mediawiki-fail-upgrade-test.sh
tests/mediawiki-install [new file with mode: 0644]
tests/mediawiki-install-test.sh
tests/mediawiki-restore-upgrade-test.sh
tests/mediawiki-upgrade-test.sh
tests/mediawiki-webfail-upgrade-test.sh
tests/wordpress-install [new file with mode: 0644]
tests/wordpress-install-test.sh
tests/wordpress-upgrade-test.sh
wizard/app/__init__.py
wizard/command/upgrade.py

diff --git a/TODO b/TODO
index c5f7aa751265a40672c3ab9f3d6f4072d51a2707..4288d0726d8390e6e9841502e61f94f60391d560 100644 (file)
--- a/TODO
+++ b/TODO
@@ -18,7 +18,6 @@ TODO NOW:
   and have someone manually resolve the problem.  If autodetection is not
   available, we use the saved .scripts/url for operations.
 
-- Test code duplication (app specific parameters), also naming sucks for autocomplete
 - wizard install wordpress should ask for password
 - Test code should auto-nuke the database using `wizard remove` before doing a new install
 - git diff :1:$file :2:$file to find out what the user did, or is it :3:?
index a5f00de21b87a7a8470b8a8dc98cfa4d0564d46d..bb7b34515d3acf41a9e28c3f915b4296e8810978 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/bash -e
 
-TESTNAME="backup_restore_mediawiki"
+TESTNAME="mediawiki_backup_restore"
 source ./setup
 
-wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
 cd "$TESTDIR"
 wizard backup
 
index 2a9827f9a82ab649ea43755a16d83e5d433e078c..4978cbd70f9af8dffc457477350b368355752807 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/bash -e
 
-TESTNAME="continue_upgrade_mediawiki"
+TESTNAME="mediawiki_continue_upgrade"
 source ./setup
 
-wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
 
 # nuke the install
 FROB="RELEASE-NOTES"
index 9dd8e0ef183948d20f36ca533fa743bc3eb057ae..9ae0a6e8386ccca2aa60cd4b27707c040b148937 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/bash -e
 
-TESTNAME="upgrade_mediawiki_fail"
+TESTNAME="mediawiki_fail_upgrade"
 source ./setup
 
-wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
 echo "FAILURE" > "$TESTDIR/maintenance/update.php"
 wizard upgrade "$TESTDIR" || true
 cd "$TESTDIR"
diff --git a/tests/mediawiki-install b/tests/mediawiki-install
new file mode 100644 (file)
index 0000000..d8d875a
--- /dev/null
@@ -0,0 +1 @@
+wizard install "mediawiki-$VERSION-scripts" "$TESTDIR" --non-interactive -- --title="TestApp"
index cadcecf3e95e6986b52c994bd434c22c429383ef..633fbcde9058fb34455db55344bef1fbfece933a 100755 (executable)
@@ -1,7 +1,6 @@
 #!/bin/bash -e
 
 DEFAULT_HEAD=1
-TESTNAME="install_mediawiki"
+TESTNAME="mediawiki_install"
 source ./setup
-
-wizard install "mediawiki-$VERSION-scripts" "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
index c7bb743bdb2f121e4571ad40892e05c72089db52..759cd7eaee82100028670028ff2d99d1d281526b 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/bash -e
 
-TESTNAME="upgrade_mediawiki_restore"
+TESTNAME="mediawiki_restore_upgrade"
 source ./setup
 
-wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
 wizard upgrade "$TESTDIR"
 cd "$TESTDIR"
 BACKUP=`wizard restore | head -n1`
index 334a13b750555bfdeffbe08113e8e45071a58228..43b77210d447f1e8895ed6a9ef354210b95b36e3 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash -e
 
-TESTNAME="upgrade_mediawiki"
+TESTNAME="mediawiki_upgrade"
 source ./setup
 
 wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
index 07eb07f2caa2365752b3108643f4607cb4ed5d4f..d3f5170a3adfa0d4e2b3356c7e2946daa7f0cecc 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/bash -e
 
-TESTNAME="upgrade_mediawiki_webfail"
+TESTNAME="mediawiki_webfail_upgrade"
 source ./setup
 
-wizard install mediawiki-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="TestApp"
+source ./mediawiki-install
 cp mediawiki-webfail-upgrade-php "$TESTDIR/maintenance/update.php"
 wizard upgrade "$TESTDIR" || true
 cd "$TESTDIR"
diff --git a/tests/wordpress-install b/tests/wordpress-install
new file mode 100644 (file)
index 0000000..6e5fe61
--- /dev/null
@@ -0,0 +1 @@
+wizard install "wordpress-$VERSION-scripts" "$TESTDIR" --non-interactive -- --title="My Blog"
index 254f4ef52b11005edf1a14092b9c5b836d36a79c..17f2f8a4a409bc9ed8ed457c3ee338d821261bdf 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash -e
 
 DEFAULT_HEAD=1
-TESTNAME="install_wordpress"
+TESTNAME="wordpress_install"
 source ./setup
 
-wizard install "wordpress-$VERSION-scripts" "$TESTDIR" --non-interactive -- --title="My Blog"
+source ./wordpress-install
index ef3dfbd9f88ca92eb6027fced41556820d289c2a..241e383aaec2510c4e8a91891e39379f930db9b5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash -e
 
-TESTNAME="upgrade_wordpress"
+TESTNAME="wordpress_upgrade"
 source ./setup
 
-wizard install wordpress-$VERSION-scripts "$TESTDIR" --non-interactive -- --title="My Blog"
+source ./wordpress-install
 wizard upgrade "$TESTDIR"
index 483f7ee30c01e8310eded59a8fd9993552747e30..ee9f58deab43bc4990e0fc234033d540bd4f8c45 100644 (file)
@@ -264,8 +264,12 @@ class Application(object):
         Checks if a given page of an autoinstall contains a particular string.
         """
         page = deployment.fetch(page)
-        logging.info("checkWebPage:\n\n" + page)
-        return page.find(output) != -1
+        result = page.find(output) != -1
+        if result:
+            logging.debug("checkWebPage (passed):\n\n" + page)
+        else:
+            logging.info("checkWebPage (failed):\n\n" + page)
+        return result
     def checkConfig(self, deployment):
         """
         Checks whether or not an autoinstall has been configured/installed
@@ -591,7 +595,8 @@ class Failure(Error):
 
 class InstallFailure(Error):
     """Installation failed for unknown reason."""
-    pass
+    def __str__(self):
+        return """Installation failed for unknown reason."""
 
 class RecoverableInstallFailure(InstallFailure):
     """
@@ -621,16 +626,11 @@ ERROR: Upgrade script failed, details:
 
 class UpgradeVerificationFailure(Failure):
     """Upgrade script passed, but website wasn't accessible afterwards"""
-    #: String details of failure (possibly stdout or stderr output)
-    details = None
-    def __init__(self, details):
-        self.details = details
     def __str__(self):
         return """
 
-ERROR: Upgrade script passed, but website wasn't accessible afterwards. Details:
-
-%s""" % self.details
+ERROR: Upgrade script passed, but website wasn't accessible afterwards.  Check
+the debug logs for the contents of the page."""
 
 class BackupFailure(Failure):
     """Backup script failed."""
index 4cb402ffe388754f3f9a9c5427588c85a096eec9..476c1b78ca3890be9715227ac3bb382dff42adfb 100644 (file)
@@ -145,7 +145,7 @@ def main(argv, baton):
                 except deploy.WebVerificationError as e:
                     logging.warning("Web verification failed: rolling back")
                     perform_restore(d, backup)
-                    raise app.UpgradeVerificationFailure(e.contents)
+                    raise app.UpgradeVerificationFailure()
         # XXX: frob .htaccess to make site accessible
         #       to do this, check if .htaccess changed, first.  Upgrade
         #       process might have frobbed it.  Don't be