Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / repeat_options.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import optparse
6
7
8 class RepeatOptions(object):
9   def __init__(self, page_repeat=None, pageset_repeat=None):
10     self.page_repeat = page_repeat
11     self.pageset_repeat = pageset_repeat
12
13   def __deepcopy__(self, _):
14     return RepeatOptions(self.page_repeat, self.pageset_repeat)
15
16   @classmethod
17   def AddCommandLineArgs(cls, parser):
18     """Adds the repeat options group to the given options parser."""
19     group = optparse.OptionGroup(parser, 'Repeat options')
20     group.add_option('--page-repeat', default=1, type='int',
21                      help='Number of times to repeat each individual page '
22                      'before proceeding with the next page in the pageset.')
23     group.add_option('--pageset-repeat', default=1, type='int',
24                      help='Number of times to repeat the entire pageset.')
25     parser.add_option_group(group)
26
27   def UpdateFromParseResults(self, finder_options):
28     """Copies options from the given options object to this object."""
29     self.page_repeat = finder_options.page_repeat
30     self.pageset_repeat = finder_options.pageset_repeat
31
32   def IsRepeating(self):
33     """Returns True if we will be repeating pages or pagesets."""
34     return self.page_repeat != 1 or self.pageset_repeat != 1