run_tests_unittest.py revision 116680a4aac90f2aa7413d9095a592090648e557
1# Copyright 2014 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 5import unittest 6 7from telemetry import decorators 8from telemetry.core import util 9from telemetry.unittest import run_tests 10 11 12class MockPossibleBrowser(object): 13 def __init__(self, browser_type, os_name, os_version_name, 14 supports_tab_control): 15 self.browser_type = browser_type 16 self.platform = MockPlatform(os_name, os_version_name) 17 self.supports_tab_control = supports_tab_control 18 19 20class MockPlatform(object): 21 def __init__(self, os_name, os_version_name): 22 self.os_name = os_name 23 self.os_version_name = os_version_name 24 25 def GetOSName(self): 26 return self.os_name 27 28 def GetOSVersionName(self): 29 return self.os_version_name 30 31 32class RunTestsUnitTest(unittest.TestCase): 33 34 def setUp(self): 35 self.suite = unittest.TestSuite() 36 self.suite.addTests(run_tests.Discover( 37 util.GetTelemetryDir(), util.GetTelemetryDir(), 'disabled_cases.py')) 38 39 def _GetEnabledTests(self, browser_type, os_name, os_version_name, 40 supports_tab_control): 41 # pylint: disable=W0212 42 def MockPredicate(test): 43 method = getattr(test, test._testMethodName) 44 return decorators.IsEnabled(method, MockPossibleBrowser( 45 browser_type, os_name, os_version_name, supports_tab_control)) 46 47 enabled_tests = set() 48 for i in run_tests.FilterSuite(self.suite, MockPredicate)._tests: 49 for j in i: 50 for k in j: 51 enabled_tests.add(k._testMethodName) 52 return enabled_tests 53 54 def testSystemMacMavericks(self): 55 self.assertEquals( 56 set(['testAllEnabled', 57 'testMacOnly', 58 'testMavericksOnly', 59 'testNoChromeOS', 60 'testNoWinLinux', 61 'testSystemOnly', 62 'testHasTabs']), 63 self._GetEnabledTests('system', 'mac', 'mavericks', True)) 64 65 def testSystemMacLion(self): 66 self.assertEquals( 67 set(['testAllEnabled', 68 'testMacOnly', 69 'testNoChromeOS', 70 'testNoMavericks', 71 'testNoWinLinux', 72 'testSystemOnly', 73 'testHasTabs']), 74 self._GetEnabledTests('system', 'mac', 'lion', True)) 75 76 def testCrosGuestChromeOS(self): 77 self.assertEquals( 78 set(['testAllEnabled', 79 'testChromeOSOnly', 80 'testNoMac', 81 'testNoMavericks', 82 'testNoSystem', 83 'testNoWinLinux', 84 'testHasTabs']), 85 self._GetEnabledTests('cros-guest', 'chromeos', '', True)) 86 87 def testCanaryWindowsWin7(self): 88 self.assertEquals( 89 set(['testAllEnabled', 90 'testNoChromeOS', 91 'testNoMac', 92 'testNoMavericks', 93 'testNoSystem', 94 'testWinOrLinuxOnly', 95 'testHasTabs']), 96 self._GetEnabledTests('canary', 'win', 'win7', True)) 97 98 def testDoesntHaveTabs(self): 99 self.assertEquals( 100 set(['testAllEnabled', 101 'testNoChromeOS', 102 'testNoMac', 103 'testNoMavericks', 104 'testNoSystem', 105 'testWinOrLinuxOnly']), 106 self._GetEnabledTests('canary', 'win', 'win7', False)) 107