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

Side by Side Diff: tools/testing/webdriver_test_setup.py

Issue 10106012: Fix install script to deal with unzip for Windows. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
4 # for details. All rights reserved. Use of this source code is governed by a 4 # for details. All rights reserved. Use of this source code is governed by a
5 # BSD-style license that can be found in the LICENSE file. 5 # BSD-style license that can be found in the LICENSE file.
6 6
7 # Run to install the necessary components to run webdriver on the buildbots or 7 # Run to install the necessary components to run webdriver on the buildbots or
8 # on your local machine. 8 # on your local machine.
9 # Note: The setup steps can be done fairly easily by hand. This script is 9 # Note: The setup steps can be done fairly easily by hand. This script is
10 # intended to simply and reduce the time for setup since there are a fair number 10 # intended to simply and reduce the time for setup since there are a fair number
11 # of steps. 11 # of steps.
12 12
13 # TODO(efortuna): Rewrite this script in Dart when the Process module has a 13 # TODO(efortuna): Rewrite this script in Dart when the Process module has a
14 # better high level API. 14 # better high level API.
15 import optparse 15 import optparse
16 import os 16 import os
17 import platform 17 import platform
18 import re 18 import re
19 import subprocess 19 import subprocess
20 import sys 20 import sys
21 import urllib 21 import urllib
22 import urllib2 22 import urllib2
23 import zipfile
23 24
24 def run_cmd(cmd, stdin=None): 25 def run_cmd(cmd, stdin=None):
25 """Run the command on the command line in the shell. We print the output of 26 """Run the command on the command line in the shell. We print the output of
26 the command. 27 the command.
27 """ 28 """
28 print cmd 29 print cmd
29 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, 30 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
30 stdin=subprocess.PIPE, shell=True) 31 stdin=subprocess.PIPE, shell=True)
31 output, not_used = p.communicate(input=stdin) 32 output, stderr = p.communicate(input=stdin)
32 if output: 33 if output:
33 print output 34 print output
35 if stderr:
36 print stderr
34 37
35 def parse_args(): 38 def parse_args():
36 parser = optparse.OptionParser() 39 parser = optparse.OptionParser()
37 parser.add_option('--firefox', '-f', dest='firefox', help='Install Firefox', 40 parser.add_option('--firefox', '-f', dest='firefox', help='Install Firefox',
38 action='store_true', default=False) 41 action='store_true', default=False)
39 parser.add_option('--path', '-p', dest='path', help='Specify location ' + \ 42 parser.add_option('--path', '-p', dest='path', help='Specify location ' + \
40 'on your PATH for where we should install chromedriver (default is in' + \ 43 'on your PATH for where we should install chromedriver (default is in' + \
41 'depot_tools).', metavar='CHROMEDRIVER_LOC', type='str', action='store', 44 'depot_tools).', metavar='CHROMEDRIVER_LOC', type='str', action='store',
42 default=None) 45 default=None)
43 parser.add_option('--buildbot', '-b', dest='buildbot', action='store_true', 46 parser.add_option('--buildbot', '-b', dest='buildbot', action='store_true',
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 127
125 def run(self): 128 def run(self):
126 """Download and install the Google Code.""" 129 """Download and install the Google Code."""
127 print 'Installing from %s' % self.project_name 130 print 'Installing from %s' % self.project_name
128 os_str = self.get_os_str 131 os_str = self.get_os_str
129 version = self.find_latest_version() 132 version = self.find_latest_version()
130 download_name = self.download_name_func({'os': os_str, 'version': version}) 133 download_name = self.download_name_func({'os': os_str, 'version': version})
131 urllib.urlretrieve(self.google_code_download() + '/' + download_name, 134 urllib.urlretrieve(self.google_code_download() + '/' + download_name,
132 os.path.join(self.download_location, download_name)) 135 os.path.join(self.download_location, download_name))
133 if download_name.endswith('.zip'): 136 if download_name.endswith('.zip'):
134 run_cmd('unzip -u %s -d %s' % (os.path.join(self.download_location, 137 z = zipfile.ZipFile(os.path.join(self.download_location, download_name))
135 download_name), self.download_location)) 138 z.extractall(self.download_location)
139 z.close()
136 os.remove(os.path.join(self.download_location, download_name)) 140 os.remove(os.path.join(self.download_location, download_name))
137 141
138 @property 142 @property
139 def get_os_str(self): 143 def get_os_str(self):
140 """The strings to indicate what OS a download is for as used on Google Code. 144 """The strings to indicate what OS a download is for as used on Google Code.
141 """ 145 """
142 os_str = 'win' 146 os_str = 'win'
143 if 'darwin' in sys.platform: 147 if 'darwin' in sys.platform:
144 os_str = 'mac' 148 os_str = 'mac'
145 elif 'linux' in sys.platform: 149 elif 'linux' in sys.platform:
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 lambda x: 'chromedriver_%(os)s_%(version)s.zip' % x).run() 245 lambda x: 'chromedriver_%(os)s_%(version)s.zip' % x).run()
242 if 'win32' not in sys.platform and 'cygwin' not in sys.platform: 246 if 'win32' not in sys.platform and 'cygwin' not in sys.platform:
243 GoogleCodeInstaller('selenium', os.path.dirname(os.path.abspath(__file__)), 247 GoogleCodeInstaller('selenium', os.path.dirname(os.path.abspath(__file__)),
244 lambda x: 'selenium-server-standalone-%(version)s.jar' % x).run() 248 lambda x: 'selenium-server-standalone-%(version)s.jar' % x).run()
245 249
246 if args.firefox: 250 if args.firefox:
247 FirefoxInstaller().run() 251 FirefoxInstaller().run()
248 252
249 if __name__ == '__main__': 253 if __name__ == '__main__':
250 main() 254 main()
OLDNEW
« 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