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

Side by Side Diff: testing_support/local_rietveld.py

Issue 9212062: Use a newer version of rietveld. It is required to update upload.py (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: add warning about hg Created 8 years, 11 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Setups a local Rietveld instance to test against a live server for 6 """Setups a local Rietveld instance to test against a live server for
7 integration tests. 7 integration tests.
8 8
9 It makes sure Google AppEngine SDK is found, download Rietveld and Django code 9 It makes sure Google AppEngine SDK is found, download Rietveld and Django code
10 if necessary and starts the server on a free inbound TCP port. 10 if necessary and starts the server on a free inbound TCP port.
11 """ 11 """
12 12
13 import optparse 13 import optparse
14 import os 14 import os
15 import shutil
15 import socket 16 import socket
16 import sys 17 import sys
17 import time 18 import time
18 19
19 import subprocess2 20 try:
21 import subprocess2
22 except ImportError:
23 sys.path.append(
24 os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'))
25 import subprocess2
20 26
21 27
22 class Failure(Exception): 28 class Failure(Exception):
23 pass 29 pass
24 30
25 31
26 def test_port(port): 32 def test_port(port):
27 s = socket.socket() 33 s = socket.socket()
28 try: 34 try:
29 return s.connect_ex(('127.0.0.1', port)) == 0 35 return s.connect_ex(('127.0.0.1', port)) == 0
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 if not os.path.isfile(os.path.join(self.sdk_path, 'VERSION')): 72 if not os.path.isfile(os.path.join(self.sdk_path, 'VERSION')):
67 base_dir = os.path.dirname(base_dir) 73 base_dir = os.path.dirname(base_dir)
68 self.dev_app = os.path.join(self.sdk_path, 'dev_appserver.py') 74 self.dev_app = os.path.join(self.sdk_path, 'dev_appserver.py')
69 75
70 def install_prerequisites(self): 76 def install_prerequisites(self):
71 # First, verify the Google AppEngine SDK is available. 77 # First, verify the Google AppEngine SDK is available.
72 if not os.path.isfile(self.dev_app): 78 if not os.path.isfile(self.dev_app):
73 raise Failure( 79 raise Failure(
74 'Install google_appengine sdk in %s or higher up' % self.base_dir) 80 'Install google_appengine sdk in %s or higher up' % self.base_dir)
75 81
82 if os.path.isdir(os.path.join(self.rietveld, '.svn')):
83 # Left over from subversion. Delete it.
84 shutil.rmtree(self.rietveld)
85
76 # Second, checkout rietveld if not available. 86 # Second, checkout rietveld if not available.
87 rev = '9349cab9a3bb'
77 if not os.path.isdir(self.rietveld): 88 if not os.path.isdir(self.rietveld):
78 print('Checking out rietveld...') 89 print('Checking out rietveld...')
79 try: 90 try:
80 subprocess2.check_call( 91 subprocess2.check_call(
81 ['svn', 'co', '-q', 'http://rietveld.googlecode.com/svn/trunk@681', 92 [ 'hg', 'clone', '-q', '-u', rev, '-r', rev,
82 self.rietveld]) 93 'https://code.google.com/p/rietveld/', self.rietveld])
83 except (OSError, subprocess2.CalledProcessError), e: 94 except (OSError, subprocess2.CalledProcessError), e:
84 raise Failure('Failed to checkout rietveld\n%s' % e) 95 raise Failure(
96 'Failed to checkout rietveld. Do you have mercurial installed?\n'
97 '%s' % e)
85 else: 98 else:
86 print('Syncing rietveld...') 99 print('Syncing rietveld...')
87 try: 100 try:
88 subprocess2.check_call( 101 subprocess2.check_call(
89 ['svn', 'up', '-q', '-r', '681'], cwd=self.rietveld) 102 ['hg', 'co', '-q', '-C', rev], cwd=self.rietveld)
90 except (OSError, subprocess2.CalledProcessError), e: 103 except (OSError, subprocess2.CalledProcessError), e:
91 raise Failure('Failed to sync rietveld\n%s' % e) 104 raise Failure('Failed to sync rietveld\n%s' % e)
92 105
93 def start_server(self, verbose=False): 106 def start_server(self, verbose=False):
94 self.install_prerequisites() 107 self.install_prerequisites()
95 self.port = find_free_port() 108 self.port = find_free_port()
96 if verbose: 109 if verbose:
97 pipe = None 110 pipe = None
98 else: 111 else:
99 pipe = subprocess2.VOID 112 pipe = subprocess2.VOID
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 instance.start_server(verbose=options.verbose) 156 instance.start_server(verbose=options.verbose)
144 print 'Local rietveld instance started on port %d' % instance.port 157 print 'Local rietveld instance started on port %d' % instance.port
145 while True: 158 while True:
146 time.sleep(0.1) 159 time.sleep(0.1)
147 finally: 160 finally:
148 instance.stop_server() 161 instance.stop_server()
149 162
150 163
151 if __name__ == '__main__': 164 if __name__ == '__main__':
152 main() 165 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