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

Side by Side Diff: trychange.py

Issue 3117039: Refactor SubprocessCallAndFilter() to remove positional arguments. (Closed)
Patch Set: Created 10 years, 3 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
« no previous file with comments | « tests/scm_unittest.py ('k') | 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 # Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2009 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 """Client-side script to send a try job to the try server. It communicates to 5 """Client-side script to send a try job to the try server. It communicates to
6 the try server by either writting to a svn repository or by directly connecting 6 the try server by either writting to a svn repository or by directly connecting
7 to the server by HTTP. 7 to the server by HTTP.
8 """ 8 """
9 9
10 import datetime 10 import datetime
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 items = path.split('@') 90 items = path.split('@')
91 assert len(items) <= 2 91 assert len(items) <= 2
92 self.checkout_root = items[0] 92 self.checkout_root = items[0]
93 items.append(None) 93 items.append(None)
94 self.diff_against = items[1] 94 self.diff_against = items[1]
95 self.options = options 95 self.options = options
96 self.files = self.options.files 96 self.files = self.options.files
97 self.options.files = None 97 self.options.files = None
98 self.codereview_settings = None 98 self.codereview_settings = None
99 self.codereview_settings_file = 'codereview.settings' 99 self.codereview_settings_file = 'codereview.settings'
100 self.gclient_root = None
100 101
101 def GetFileNames(self): 102 def GetFileNames(self):
102 """Return the list of files in the diff.""" 103 """Return the list of files in the diff."""
103 return self.files 104 return self.files
104 105
105 def GetCodeReviewSetting(self, key): 106 def GetCodeReviewSetting(self, key):
106 """Returns a value for the given key for this repository. 107 """Returns a value for the given key for this repository.
107 108
108 Uses gcl-style settings from the repository.""" 109 Uses gcl-style settings from the repository."""
109 if self.codereview_settings is None: 110 if self.codereview_settings is None:
(...skipping 19 matching lines...) Expand all
129 'patchlevel': self.GetCodeReviewSetting('TRYSERVER_PATCHLEVEL'), 130 'patchlevel': self.GetCodeReviewSetting('TRYSERVER_PATCHLEVEL'),
130 } 131 }
131 logging.info('\n'.join(['%s: %s' % (k, v) 132 logging.info('\n'.join(['%s: %s' % (k, v)
132 for (k, v) in settings.iteritems() if v])) 133 for (k, v) in settings.iteritems() if v]))
133 for (k, v) in settings.iteritems(): 134 for (k, v) in settings.iteritems():
134 if v and getattr(self.options, k) is None: 135 if v and getattr(self.options, k) is None:
135 setattr(self.options, k, v) 136 setattr(self.options, k, v)
136 137
137 def _GclientStyleSettings(self): 138 def _GclientStyleSettings(self):
138 """Find the root, assuming a gclient-style checkout.""" 139 """Find the root, assuming a gclient-style checkout."""
139 self.gclient_root = None
140 if not self.options.no_gclient and not self.options.root: 140 if not self.options.no_gclient and not self.options.root:
141 root = self.checkout_root 141 root = self.checkout_root
142 self.gclient_root = gclient_utils.FindGclientRoot(root) 142 self.gclient_root = gclient_utils.FindGclientRoot(root)
143 if self.gclient_root: 143 if self.gclient_root:
144 logging.info('Found .gclient at %s' % self.gclient_root) 144 logging.info('Found .gclient at %s' % self.gclient_root)
145 self.options.root = gclient_utils.PathDifference(self.gclient_root, 145 self.options.root = gclient_utils.PathDifference(self.gclient_root,
146 root) 146 root)
147 147
148 def AutomagicalSettings(self): 148 def AutomagicalSettings(self):
149 """Determines settings based on supported code review and checkout tools. 149 """Determines settings based on supported code review and checkout tools.
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 def _SendChangeHTTP(options): 294 def _SendChangeHTTP(options):
295 """Send a change to the try server using the HTTP protocol.""" 295 """Send a change to the try server using the HTTP protocol."""
296 if not options.host: 296 if not options.host:
297 raise NoTryServerAccess('Please use the --host option to specify the try ' 297 raise NoTryServerAccess('Please use the --host option to specify the try '
298 'server host to connect to.') 298 'server host to connect to.')
299 if not options.port: 299 if not options.port:
300 raise NoTryServerAccess('Please use the --port option to specify the try ' 300 raise NoTryServerAccess('Please use the --port option to specify the try '
301 'server port to connect to.') 301 'server port to connect to.')
302 302
303 values = _ParseSendChangeOptions(options) 303 values = _ParseSendChangeOptions(options)
304 description = ''.join("%s=%s\n" % (k,v) for (k,v) in values.iteritems()) 304 description = ''.join("%s=%s\n" % (k, v) for (k, v) in values.iteritems())
305 values['patch'] = options.diff 305 values['patch'] = options.diff
306 306
307 url = 'http://%s:%s/send_try_patch' % (options.host, options.port) 307 url = 'http://%s:%s/send_try_patch' % (options.host, options.port)
308 proxies = None 308 proxies = None
309 if options.proxy: 309 if options.proxy:
310 if options.proxy.lower() == 'none': 310 if options.proxy.lower() == 'none':
311 # Effectively disable HTTP_PROXY or Internet settings proxy setup. 311 # Effectively disable HTTP_PROXY or Internet settings proxy setup.
312 proxies = {} 312 proxies = {}
313 else: 313 else:
314 proxies = {'http': options.proxy, 'https': options.proxy} 314 proxies = {'http': options.proxy, 'https': options.proxy}
(...skipping 23 matching lines...) Expand all
338 338
339 339
340 def _SendChangeSVN(options): 340 def _SendChangeSVN(options):
341 """Send a change to the try server by committing a diff file on a subversion 341 """Send a change to the try server by committing a diff file on a subversion
342 server.""" 342 server."""
343 if not options.svn_repo: 343 if not options.svn_repo:
344 raise NoTryServerAccess('Please use the --svn_repo option to specify the' 344 raise NoTryServerAccess('Please use the --svn_repo option to specify the'
345 ' try server svn repository to connect to.') 345 ' try server svn repository to connect to.')
346 346
347 values = _ParseSendChangeOptions(options) 347 values = _ParseSendChangeOptions(options)
348 description = ''.join("%s=%s\n" % (k,v) for (k,v) in values.iteritems()) 348 description = ''.join("%s=%s\n" % (k, v) for (k, v) in values.iteritems())
349 logging.info('Sending by SVN') 349 logging.info('Sending by SVN')
350 logging.info(description) 350 logging.info(description)
351 logging.info(options.svn_repo) 351 logging.info(options.svn_repo)
352 logging.info(options.diff) 352 logging.info(options.diff)
353 if options.dry_run: 353 if options.dry_run:
354 return 354 return
355 355
356 # Create a temporary directory, put a uniquely named file in it with the diff 356 # Create a temporary directory, put a uniquely named file in it with the diff
357 # content and svn import that. 357 # content and svn import that.
358 temp_dir = tempfile.mkdtemp() 358 temp_dir = tempfile.mkdtemp()
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 except (InvalidScript, NoTryServerAccess), e: 752 except (InvalidScript, NoTryServerAccess), e:
753 if swallow_exception: 753 if swallow_exception:
754 return 1 754 return 1
755 print e 755 print e
756 return 1 756 return 1
757 return 0 757 return 0
758 758
759 759
760 if __name__ == "__main__": 760 if __name__ == "__main__":
761 sys.exit(TryChange(None, [], False)) 761 sys.exit(TryChange(None, [], False))
OLDNEW
« no previous file with comments | « tests/scm_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698