Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5896)

Unified Diff: chrome/test/install_test/install_test.py

Issue 11262040: Revert 164090 - Moved Main class to a new file called run_install_tests.py and modified it by addin… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/test/install_test/run_install_tests.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/install_test/install_test.py
===================================================================
--- chrome/test/install_test/install_test.py (revision 164108)
+++ chrome/test/install_test/install_test.py (working copy)
@@ -11,8 +11,12 @@
"""
import atexit
+import logging
+import optparse
import os
import platform
+import re
+import shutil
import stat
import sys
import tempfile
@@ -218,3 +222,87 @@
url = '%s%s/%s/%s/chromedriver.exe' % (base_url, build, system,
'chrome-win32.test')
InstallTest._Download(url, InstallTest._chrome_driver)
+
+
+class Main(object):
+ """Main program for running Updater tests."""
+
+ def __init__(self):
+ self._SetLoggingConfiguration()
+ self._ParseArgs()
+ self._Run()
+
+ def _ParseArgs(self):
+ """Parses command line arguments."""
+ parser = optparse.OptionParser()
+ parser.add_option(
+ '-u', '--url', type='string', default='', dest='url',
+ help='Specifies the build url, without the build number.')
+ parser.add_option(
+ '-o', '--options', type='string', default='',
+ help='Specifies any additional Chrome options (i.e. --system-level).')
+ parser.add_option(
+ '--install-build', type='string', default='', dest='install_build',
+ help='Specifies the build to be used for fresh install testing.')
+ parser.add_option(
+ '--update-builds', type='string', default='', dest='update_builds',
+ help='Specifies the builds to be used for updater testing.')
+ parser.add_option(
+ '--install-type', type='string', default='user', dest='install_type',
+ help='Type of installation (i.e., user, system, or both)')
+ self._opts, self._args = parser.parse_args()
+ self._ValidateArgs()
+ if(self._opts.install_type == 'system' or
+ self._opts.install_type == 'user'):
+ install_type = ({
+ 'system' : chrome_installer_win.InstallationType.SYSTEM,
+ 'user' : chrome_installer_win.InstallationType.USER}).get(
+ self._opts.install_type)
+ InstallTest.SetInstallType(install_type)
+ update_builds = (self._opts.update_builds.split(',') if
+ self._opts.update_builds else [])
+ options = self._opts.options.split(',') if self._opts.options else []
+ InstallTest.InitTestFixture(self._opts.install_build,
+ update_builds,
+ self._opts.url,
+ options)
+
+ def _ValidateArgs(self):
+ """Verifies the sanity of the command arguments.
+
+ Confirms that all specified builds have a valid version number, and the
+ build urls are valid.
+ """
+ builds = []
+ if self._opts.install_build:
+ builds.append(self._opts.install_build)
+ if self._opts.update_builds:
+ builds.extend(self._opts.update_builds.split(','))
+ builds = list(frozenset(builds))
+ for build in builds:
+ if not re.match('\d+\.\d+\.\d+\.\d+', build):
+ raise RuntimeError('Invalid build number: %s' % build)
+ if not pyauto_utils.DoesUrlExist('%s/%s/' % (self._opts.url, build)):
+ raise RuntimeError('Could not locate build no. %s' % build)
+
+ def _SetLoggingConfiguration(self):
+ """Sets the basic logging configuration."""
+ log_format = '%(asctime)s %(levelname)-8s %(message)s'
+ logging.basicConfig(level=logging.INFO, format=log_format)
+
+ def _GetTests(self):
+ """Returns a list of unittests from the calling script."""
+ mod_name = [os.path.splitext(os.path.basename(sys.argv[0]))[0]]
+ if os.path.dirname(sys.argv[0]) not in sys.path:
+ sys.path.append(os.path.dirname(sys.argv[0]))
+ return unittest.defaultTestLoader.loadTestsFromNames(mod_name)
+
+ def _Run(self):
+ """Runs the unit tests."""
+ tests = self._GetTests()
+ result = pyauto_utils.GTestTextTestRunner(verbosity=1).run(tests)
+ del(tests)
+ if not result.wasSuccessful():
+ print >>sys.stderr, ('Not all tests were successful.')
+ sys.exit(1)
+ sys.exit(0)
« no previous file with comments | « no previous file | chrome/test/install_test/run_install_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698