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

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

Issue 7762010: Change fetch prebuilt pyauto script to download chromedriver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/test/
Patch Set: address comments Created 9 years, 4 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/pyautolib/fetch_prebuilt_pyauto.py
diff --git a/chrome/test/pyautolib/fetch_prebuilt_pyauto.py b/chrome/test/pyautolib/fetch_prebuilt_pyauto.py
index 4423e711f0b5c0fa495f3742de9fa7d8d2c9a0d6..e308ea8bf15666f4c37e38940013c3a5f52f8014 100644
--- a/chrome/test/pyautolib/fetch_prebuilt_pyauto.py
+++ b/chrome/test/pyautolib/fetch_prebuilt_pyauto.py
@@ -20,11 +20,13 @@ Examples:
"""
import glob
+import httplib
import optparse
import os
import shutil
import sys
import urllib
+import urlparse
import pyauto_utils
@@ -54,21 +56,45 @@ class FetchPrebuilt(object):
self._outdir = self._options.outdir
self._url = self._args[0]
- # Setup urls to download
- self._chrome_zip_name = 'chrome-%s' % { 'linux64': 'linux64bit',
- 'linux32': 'linux32bit',
- 'mac': 'mac',
- 'win': 'win32'
- }[self._options.platform]
+ # 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 self._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)
chrome_test_url = '%s/%s.test' % (self._url, self._chrome_zip_name)
self._pyautolib_py_url = '%s/pyautolib.py' % chrome_test_url
- self._pyautolib_so_url = '%s/%s' % (chrome_test_url,
- { 'linux64': '_pyautolib.so',
- 'linux32': '_pyautolib.so',
- 'mac': '_pyautolib.so',
- 'win': '_pyautolib.pyd',
- }[self._options.platform])
+ 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'
+ self._pyautolib_so_url = chrome_test_url + '/' + self._pyautolib_so_name
+ self._chromedriver_url = chrome_test_url + '/' + self._chromedriver_name
+
+ def _DoesURLExist(self, url):
+ """Determines whether a resource exists at the given URL."""
+ parsed = urlparse.urlparse(url)
+ conn = httplib.HTTPConnection(parsed.netloc)
+ conn.request('HEAD', parsed.path)
+ return conn.getresponse().status == 200
def Cleanup(self):
"""Remove old binaries, if any."""
@@ -84,9 +110,11 @@ class FetchPrebuilt(object):
print self._chrome_zip_url
print self._pyautolib_py_url
print self._pyautolib_so_url
+ print self._chromedriver_url
chrome_zip = urllib.urlretrieve(self._chrome_zip_url)[0]
pyautolib_py = urllib.urlretrieve(self._pyautolib_py_url)[0]
pyautolib_so = urllib.urlretrieve(self._pyautolib_so_url)[0]
+ 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
@@ -96,12 +124,8 @@ class FetchPrebuilt(object):
# 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,
- { 'linux64': '_pyautolib.so',
- 'linux32': '_pyautolib.so',
- 'mac': '_pyautolib.so',
- 'win': '_pyautolib.pyd'
- }[self._options.platform])
+ pyautolib_so: os.path.join(self._outdir, self._pyautolib_so_name),
+ chromedriver: os.path.join(self._outdir, self._chromedriver_name)
}
unzip_dir_contents = glob.glob(os.path.join(chrome_unzip_dir, '*'))
for item in unzip_dir_contents:
@@ -115,6 +139,11 @@ class FetchPrebuilt(object):
pyauto_utils.RemovePath(chrome_unzip_dir)
# Final setup (if any)
+ # Set executable bit on chromedriver binary.
+ if not self._options.platform == 'win':
+ if not os.access(items_to_copy[chromedriver], os.R_OK | os.X_OK):
+ os.chmod(items_to_copy[chromedriver], 0500)
+
# Create symlink to .framework on Mac
if self._options.platform == 'mac':
mac_app_name = os.path.basename([x for x in unzip_dir_contents
@@ -133,4 +162,3 @@ class FetchPrebuilt(object):
if __name__ == '__main__':
FetchPrebuilt().Run()
-
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698