| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 | 4 |
| 5 import inspect | 5 import inspect |
| 6 import re | 6 import re |
| 7 import unittest | 7 import unittest |
| 8 | 8 |
| 9 from py_utils import cloud_storage | 9 from py_utils import cloud_storage |
| 10 from telemetry.internal.browser import browser_finder | 10 from telemetry.internal.browser import browser_finder |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 ################################################################# | 135 ################################################################# |
| 136 | 136 |
| 137 Args: | 137 Args: |
| 138 module: the module which contains test cases classes. | 138 module: the module which contains test cases classes. |
| 139 | 139 |
| 140 Returns: | 140 Returns: |
| 141 an instance of unittest.TestSuite, which contains all the tests & generated | 141 an instance of unittest.TestSuite, which contains all the tests & generated |
| 142 test cases to be run. | 142 test cases to be run. |
| 143 """ | 143 """ |
| 144 suite = unittest.TestSuite() | 144 suite = unittest.TestSuite() |
| 145 finder_options = options_for_unittests.GetCopy() |
| 146 if not hasattr(finder_options, 'browser_test_runner_running'): |
| 147 return suite |
| 145 for _, obj in inspect.getmembers(module): | 148 for _, obj in inspect.getmembers(module): |
| 146 if (inspect.isclass(obj) and | 149 if (inspect.isclass(obj) and |
| 147 issubclass(obj, SeriallyExecutedBrowserTestCase)): | 150 issubclass(obj, SeriallyExecutedBrowserTestCase)): |
| 148 for test in GenerateTestCases( | 151 for test in GenerateTestCases( |
| 149 test_class=obj, finder_options=options_for_unittests.GetCopy()): | 152 test_class=obj, finder_options=finder_options): |
| 150 suite.addTest(test) | 153 suite.addTest(test) |
| 151 return suite | 154 return suite |
| 152 | 155 |
| 153 | 156 |
| 154 def _GenerateTestMethod(based_method, args): | 157 def _GenerateTestMethod(based_method, args): |
| 155 return lambda self: based_method(self, *args) | 158 return lambda self: based_method(self, *args) |
| 156 | 159 |
| 157 | 160 |
| 158 _TEST_GENERATOR_PREFIX = 'GenerateTestCases_' | 161 _TEST_GENERATOR_PREFIX = 'GenerateTestCases_' |
| 159 _INVALID_TEST_NAME_RE = re.compile(r'[^a-zA-Z0-9_]') | 162 _INVALID_TEST_NAME_RE = re.compile(r'[^a-zA-Z0-9_]') |
| (...skipping 20 matching lines...) Expand all Loading... |
| 180 assert hasattr(test_class, based_method_name), ( | 183 assert hasattr(test_class, based_method_name), ( |
| 181 '%s is specified but based method %s does not exist' % | 184 '%s is specified but based method %s does not exist' % |
| 182 (name, based_method_name)) | 185 (name, based_method_name)) |
| 183 based_method = getattr(test_class, based_method_name) | 186 based_method = getattr(test_class, based_method_name) |
| 184 for generated_test_name, args in method(finder_options): | 187 for generated_test_name, args in method(finder_options): |
| 185 _ValidateTestMethodname(generated_test_name) | 188 _ValidateTestMethodname(generated_test_name) |
| 186 setattr(test_class, generated_test_name, _GenerateTestMethod( | 189 setattr(test_class, generated_test_name, _GenerateTestMethod( |
| 187 based_method, args)) | 190 based_method, args)) |
| 188 test_cases.append(test_class(generated_test_name)) | 191 test_cases.append(test_class(generated_test_name)) |
| 189 return test_cases | 192 return test_cases |
| OLD | NEW |