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

Side by Side Diff: tools/chrome_remote_control/chrome_remote_control/browser_options.py

Issue 10984018: [chrome_remote_control] Add pylint to PRESUMMIT and fix lint (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for landing Created 8 years, 2 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
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import optparse 4 import optparse
5 import os 5 import os
6 import sys 6 import sys
7 import shlex 7 import shlex
8 import logging 8 import logging
9 9
10 from chrome_remote_control import browser_finder 10 from chrome_remote_control import browser_finder
11 11
12 class BrowserOptions(optparse.Values): 12 class BrowserOptions(optparse.Values):
13 """Options to be used for discovering and launching a browser.""" 13 """Options to be used for discovering and launching a browser."""
14 14
15 def __init__(self, browser_type=None): 15 def __init__(self, browser_type=None):
16 optparse.Values.__init__(self) 16 optparse.Values.__init__(self)
17 17
18 self.browser_type = browser_type 18 self.browser_type = browser_type
19 self.browser_executable = None 19 self.browser_executable = None
20 self.chrome_root = None 20 self.chrome_root = None
21 self.android_device = None 21 self.android_device = None
22 22
23 self.dont_override_profile = False 23 self.dont_override_profile = False
24 self.extra_browser_args = [] 24 self.extra_browser_args = []
25 self.show_stdout = False 25 self.show_stdout = False
26 26
27 self.cros_remote = None
28
27 self.verbosity = 0 29 self.verbosity = 0
28 30
29 def Copy(self): 31 def Copy(self):
30 other = BrowserOptions() 32 other = BrowserOptions()
31 other.__dict__.update(self.__dict__) 33 other.__dict__.update(self.__dict__)
32 return other 34 return other
33 35
34 def CreateParser(self, *args, **kwargs): 36 def CreateParser(self, *args, **kwargs):
35 parser = optparse.OptionParser(*args, **kwargs) 37 parser = optparse.OptionParser(*args, **kwargs)
36 38
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 group = optparse.OptionGroup(parser, 'When things go wrong') 80 group = optparse.OptionGroup(parser, 'When things go wrong')
79 group.add_option( 81 group.add_option(
80 '-v', '--verbose', action='count', dest='verbosity', 82 '-v', '--verbose', action='count', dest='verbosity',
81 help='Increase verbosity level (repeat as needed)') 83 help='Increase verbosity level (repeat as needed)')
82 parser.add_option_group(group) 84 parser.add_option_group(group)
83 85
84 real_parse = parser.parse_args 86 real_parse = parser.parse_args
85 def ParseArgs(args=None): 87 def ParseArgs(args=None):
86 defaults = parser.get_default_values() 88 defaults = parser.get_default_values()
87 for k, v in defaults.__dict__.items(): 89 for k, v in defaults.__dict__.items():
88 if k in self.__dict__: 90 if k in self.__dict__ and self.__dict__[k] != None:
89 continue 91 continue
90 self.__dict__[k] = v 92 self.__dict__[k] = v
91 ret = real_parse(args, self) 93 ret = real_parse(args, self) # pylint: disable=E1121
92 94
93 if self.verbosity >= 2: 95 if self.verbosity >= 2:
94 logging.basicConfig(level=logging.DEBUG) 96 logging.basicConfig(level=logging.DEBUG)
95 elif self.verbosity: 97 elif self.verbosity:
96 logging.basicConfig(level=logging.INFO) 98 logging.basicConfig(level=logging.INFO)
97 else: 99 else:
98 logging.basicConfig(level=logging.WARNING) 100 logging.basicConfig(level=logging.WARNING)
99 101
100 if self.browser_executable and not self.browser_type: 102 if self.browser_executable and not self.browser_type:
101 self.browser_type = 'exact' 103 self.browser_type = 'exact'
102 if not self.browser_executable and not self.browser_type: 104 if not self.browser_executable and not self.browser_type:
103 sys.stderr.write('Must provide --browser=<type>. ' + 105 sys.stderr.write('Must provide --browser=<type>. ' +
104 'Use --browser=list for valid options.\n') 106 'Use --browser=list for valid options.\n')
105 sys.exit(1) 107 sys.exit(1)
106 if self.browser_type == 'list': 108 if self.browser_type == 'list':
107 types = browser_finder.GetAllAvailableBrowserTypes(self) 109 types = browser_finder.GetAllAvailableBrowserTypes(self)
108 sys.stderr.write('Available browsers:\n') 110 sys.stderr.write('Available browsers:\n')
109 sys.stdout.write(' %s\n' % '\n '.join(types)) 111 sys.stdout.write(' %s\n' % '\n '.join(types))
110 sys.exit(1) 112 sys.exit(1)
111 if self.extra_browser_args_as_string: 113 if self.extra_browser_args_as_string: # pylint: disable=E1101
112 tmp = shlex.split(self.extra_browser_args_as_string) 114 tmp = shlex.split(
115 self.extra_browser_args_as_string) # pylint: disable=E1101
113 self.extra_browser_args.extend(tmp) 116 self.extra_browser_args.extend(tmp)
114 delattr(self, 'extra_browser_args_as_string') 117 delattr(self, 'extra_browser_args_as_string')
115 return ret 118 return ret
116 parser.parse_args = ParseArgs 119 parser.parse_args = ParseArgs
117 return parser 120 return parser
118 121
119 """ 122 # This global variable can be set to a BrowserOptions object by the test harness
120 This global variable can be set to a BrowserOptions object by the test harness 123 # to allow multiple unit tests to use a specific browser, in face of multiple
121 to allow multiple unit tests to use a specific browser, in face of multiple 124 # options.
122 options.
123 """
124 options_for_unittests = None 125 options_for_unittests = None
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698