| # Copyright 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from __future__ import absolute_import |
| import string |
| import sys |
| import time |
| |
| from telemetry.testing import serially_executed_browser_test_case |
| |
| |
| _PREV_TEST_NAME = None |
| |
| class SimpleTest( |
| serially_executed_browser_test_case.SeriallyExecutedBrowserTestCase): |
| |
| @classmethod |
| def AddCommandlineArgs(cls, parser): |
| parser.add_option('--adder-sum', type=int, default=5) |
| |
| def setUp(self): |
| self.extra = 5 |
| |
| @classmethod |
| def GenerateTestCases_AdderTest(cls, options): |
| yield 'add_1_and_2', (1, 2, options.adder_sum) |
| yield 'add_2_and_3', (2, 3, options.adder_sum) |
| yield 'add_7_and_3', (7, 3, options.adder_sum) |
| # Filtered out in browser_test_runner_unittest.py |
| yield 'dontrun_add_1_and_2', (1, 2, options.adder_sum) |
| |
| @classmethod |
| def GenerateTestCases_AlphabeticalTest(cls, options): |
| del options # unused |
| prefix = 'Alphabetical_' |
| test_names = [] |
| for character in string.lowercase[:26]: |
| test_names.append(prefix + character) |
| for character in string.uppercase[:26]: |
| test_names.append(prefix + character) |
| for num in range(20): |
| test_names.append(prefix + str(num)) |
| |
| # Shuffle |test_names| so the tests will be generated in a random order. |
| test_names = (test_names[25:40] + test_names[40:70] + test_names[:25] + |
| test_names[70:]) |
| for t in test_names: |
| yield t, () |
| |
| def AlphabeticalTest(self): |
| test_name = self.id() |
| global _PREV_TEST_NAME # pylint: disable=global-statement |
| self.assertLess(_PREV_TEST_NAME, test_name) |
| _PREV_TEST_NAME = test_name |
| |
| def AdderTest(self, a, b, partial_sum): |
| self.assertEqual(a + b, partial_sum) |
| |
| @classmethod |
| def GenerateTestCases_MultiplierTest(cls, options): |
| del options # unused |
| yield 'multiplier_simple', (10, 2, 4) |
| yield 'multiplier_simple_2', (2, 3, 5) |
| yield 'multiplier_simple_3', (10, 3, 6) |
| # Filtered out in browser_test_runner_unittest.py |
| yield 'dontrun_multiplier_simple', (10, 2, 4) |
| |
| def MultiplierTest(self, a, b, partial_sum): |
| self.assertEqual(a * b, partial_sum * self.extra) |
| |
| def TestSimple(self): |
| time.sleep(0.5) |
| self.assertEqual(1, self.extra) |
| |
| def TestException(self): |
| raise Exception('Expected exception') |
| |
| |
| def load_tests(loader, tests, pattern): # pylint: disable=invalid-name |
| del loader, tests, pattern # Unused. |
| return serially_executed_browser_test_case.LoadAllTestsInModule( |
| sys.modules[__name__]) |