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

Unified Diff: chrome/test/pyautolib/fetch_prebuilt_pyauto.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 9 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 | « chrome/test/pyautolib/download_info.py ('k') | chrome/test/pyautolib/generate_docs.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/pyautolib/fetch_prebuilt_pyauto.py
===================================================================
--- chrome/test/pyautolib/fetch_prebuilt_pyauto.py (revision 261231)
+++ chrome/test/pyautolib/fetch_prebuilt_pyauto.py (working copy)
@@ -1,214 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Fetch prebuilt binaries to run PyAuto.
-
-Sets up Chrome and PyAuto binaries using prebuilt binaries from the
-continuous build archives. Works on mac, win, linux (32 & 64 bit).
-
-Examples:
- On Mac:
- $ python fetch_prebuilt_pyauto.py -d xcodebuild/Release
- http://build.chromium.org/f/chromium/continuous/mac/LATEST
-
- On Win:
- $ python fetch_prebuilt_pyauto.py -d chrome\Release
- http://build.chromium.org/f/chromium/continuous/win/LATEST
-"""
-
-import glob
-import httplib
-import optparse
-import os
-import platform
-import shutil
-import sys
-import urllib
-import urllib2
-import urlparse
-
-import pyauto_utils
-
-
-class FetchPrebuilt(object):
- """Util class to fetch prebuilt binaries to run PyAuto."""
-
- def _ParseArgs(self):
- parser = optparse.OptionParser()
- parser.add_option(
- '-d', '--outdir', type='string', default=None,
- help='Directory in which to setup. This is typically the directory '
- 'where the binaries would go when compiled from source.')
- parser.add_option(
- '-p', '--platform', type='string',
- default=pyauto_utils.GetCurrentPlatform(),
- help='Platform. Valid options: win, mac, linux32, linux64. '
- 'Default: current platform (%s)' % pyauto_utils.GetCurrentPlatform())
- parser.add_option(
- '-l', '--latest', action='store_true', default=False,
- help='Download the latest chromium build from commondatastorage. '
- '[default=False]')
- self._options, self._args = parser.parse_args()
- if self._options.latest:
- self._url = self._GetLastestDownloadURL(self._options.platform)
- elif not self._args:
- print >>sys.stderr, 'Need download url'
- sys.exit(2)
- else:
- self._url = self._args[0]
- if not self._options.outdir:
- print >>sys.stderr, 'Need output directory: -d/--outdir'
- sys.exit(1)
- self._outdir = self._options.outdir
- # Chromium continuous build archive has a non-standard format.
- if 'index.html?path=' in self._url:
- self._url = self._url.replace('index.html?path=', '')
- self._url = self._url.rstrip('/')
- # Determine name of zip.
- if not self._options.platform.startswith('linux'):
- self._chrome_zip_name = 'chrome-%s' % {'mac': 'mac',
- 'win': 'win32'
- }[self._options.platform]
- else:
- linux_32_names = ['linux', 'lucid32bit']
- linux_64_names = ['linux64', 'lucid64bit']
- linux_names = {'linux': linux_32_names + linux_64_names,
- 'linux32': linux_32_names,
- 'linux64': linux_64_names
- }[self._options.platform]
- for name in linux_names:
- zip_name = 'chrome-' + name
- if pyauto_utils.DoesUrlExist('%s/%s.zip' % (self._url, zip_name)):
- self._chrome_zip_name = zip_name
- break
- else:
- raise RuntimeError('Could not find chrome zip at ' + self._url)
-
- # Setup urls to download.
- self._chrome_zip_url = '%s/%s.zip' % (self._url, self._chrome_zip_name)
- self._remoting_zip_url = self._url + '/' + 'remoting-webapp.zip'
- chrome_test_url = '%s/%s.test' % (self._url, self._chrome_zip_name)
- self._pyautolib_py_url = '%s/pyautolib.py' % chrome_test_url
- if self._options.platform == 'win':
- self._pyautolib_so_name = '_pyautolib.pyd'
- self._chromedriver_name = 'chromedriver.exe'
- else:
- self._pyautolib_so_name = '_pyautolib.so'
- self._chromedriver_name = 'chromedriver'
- if self._options.platform == 'mac':
- self._ffmpegsumo_so_name = 'ffmpegsumo.so'
- self._ffmpegsumo_so_url = chrome_test_url + '/' + self._ffmpegsumo_so_name
- self._pyautolib_so_url = chrome_test_url + '/' + self._pyautolib_so_name
- self._chromedriver_url = chrome_test_url + '/' + self._chromedriver_name
-
- def _GetLastestDownloadURL(self, os_platform):
- os_type = {'win': 'Win',
- 'mac': 'Mac',
- 'linux': 'Linux',
- 'linux32': 'Linux',
- 'linux64': 'Linux_x64'}[os_platform]
- if os_type == 'Linux' and platform.architecture()[0] == '64bit':
- os_type = 'Linux_x64'
- last_change_url = ('http://commondatastorage.googleapis.com/'
- 'chromium-browser-continuous/%s/LAST_CHANGE' % os_type)
- response = urllib2.urlopen(last_change_url)
- last_change = response.read()
- if not last_change:
- print >>sys.stderr, ('Unable to get latest from %s' % last_change_url)
- sys.exit(2)
- last_change_url = ('http://commondatastorage.googleapis.com/'
- 'chromium-browser-continuous/%s/%s' % (os_type,
- last_change))
- return last_change_url
-
- def Cleanup(self):
- """Remove old binaries, if any."""
- pass
-
- def Run(self):
- self._ParseArgs()
- if not os.path.isdir(self._outdir):
- os.makedirs(self._outdir)
- get_remoting = pyauto_utils.DoesUrlExist(self._remoting_zip_url)
-
- # Fetch chrome & pyauto binaries
- print 'Fetching', self._chrome_zip_url
- chrome_zip = urllib.urlretrieve(self._chrome_zip_url)[0]
-
- if get_remoting:
- print 'Fetching', self._remoting_zip_url
- remoting_zip = urllib.urlretrieve(self._remoting_zip_url)[0]
- else:
- print 'Warning: %s does not exist.' % self._remoting_zip_url
-
- print 'Fetching', self._pyautolib_py_url
- pyautolib_py = urllib.urlretrieve(self._pyautolib_py_url)[0]
-
- print 'Fetching', self._pyautolib_so_url
- pyautolib_so = urllib.urlretrieve(self._pyautolib_so_url)[0]
-
- if self._options.platform == 'mac':
- print 'Fetching', self._ffmpegsumo_so_url
- ffmpegsumo_so = urllib.urlretrieve(self._ffmpegsumo_so_url)[0]
-
- print 'Fetching', self._chromedriver_url
- chromedriver = urllib.urlretrieve(self._chromedriver_url)[0]
-
- chrome_unzip_dir = os.path.join(self._outdir, self._chrome_zip_name)
- if os.path.exists(chrome_unzip_dir):
- print 'Cleaning', chrome_unzip_dir
- pyauto_utils.RemovePath(chrome_unzip_dir)
- print 'Unzipping'
- pyauto_utils.UnzipFilenameToDir(chrome_zip, self._outdir)
- if get_remoting:
- pyauto_utils.UnzipFilenameToDir(remoting_zip, self._outdir)
- shutil.move(self._outdir + '/remoting-webapp',
- self._outdir + '/remoting/remoting.webapp')
-
- # Copy over the binaries to outdir
- items_to_copy = {
- pyautolib_py: os.path.join(self._outdir, 'pyautolib.py'),
- pyautolib_so: os.path.join(self._outdir, self._pyautolib_so_name),
- chromedriver: os.path.join(self._outdir, self._chromedriver_name)
- }
- if self._options.platform == 'mac':
- items_to_copy[ffmpegsumo_so] = \
- os.path.join(self._outdir, self._ffmpegsumo_so_name)
-
- unzip_dir_contents = glob.glob(os.path.join(chrome_unzip_dir, '*'))
- for item in unzip_dir_contents:
- name = os.path.basename(item)
- items_to_copy[item] = os.path.join(self._outdir, name)
-
- for src, dest in items_to_copy.iteritems():
- pyauto_utils.RemovePath(dest)
- print '%s ==> %s' % (os.path.basename(src), dest)
- shutil.move(src, dest)
- pyauto_utils.RemovePath(chrome_unzip_dir)
-
- # Final setup (if any)
- # Set executable bit on chromedriver binary.
- if not self._options.platform == 'win':
- os.chmod(items_to_copy[chromedriver], 0700)
-
- # Create symlink to .framework on Mac
- if self._options.platform == 'mac':
- mac_app_name = os.path.basename([x for x in unzip_dir_contents
- if x.endswith('.app')][0])
- os.chdir(self._outdir)
- framework = glob.glob(os.path.join(
- mac_app_name, 'Contents', 'Versions', '*', '*.framework'))[0]
- print framework
- dest = os.path.basename(framework)
- os.path.lexists(dest) and os.remove(dest)
- print 'Creating symlink "%s"' % dest
- os.symlink(framework, dest)
-
- print 'Prepared binaries in "%s"' % self._outdir
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(FetchPrebuilt().Run())
« no previous file with comments | « chrome/test/pyautolib/download_info.py ('k') | chrome/test/pyautolib/generate_docs.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698