run_tests_unittest.py revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 MockPlatform(object): 13 def __init__(self, os_name, os_version_name): 14 self.os_name = os_name 15 self.os_version_name = os_version_name 16 17 def GetOSName(self): 18 return self.os_name 19 20 def GetOSVersionName(self): 21 return self.os_version_name 22 23 24class RunTestsUnitTest(unittest.TestCase): 25 26 def setUp(self): 27 self.suite = run_tests.Discover( 28 util.GetTelemetryDir(), util.GetTelemetryDir(), 'disabled_cases.py') 29 30 def _GetEnabledTests(self, browser_type, platform): 31 # pylint: disable=W0212 32 def MockPredicate(test): 33 method = getattr(test, test._testMethodName) 34 return decorators.IsEnabled(method, browser_type, platform) 35 36 enabled_tests = set() 37 for i in run_tests.FilterSuite(self.suite, MockPredicate)._tests: 38 for j in i._tests: 39 for k in j._tests: 40 enabled_tests.add(k._testMethodName) 41 return enabled_tests 42 43 def testSystemMacMavericks(self): 44 self.assertEquals( 45 set(['testAllEnabled', 46 'testMacOnly', 47 'testMavericksOnly', 48 'testNoChromeOS', 49 'testNoWinLinux', 50 'testSystemOnly']), 51 self._GetEnabledTests('system', MockPlatform('mac', 'mavericks'))) 52 53 def testSystemMacLion(self): 54 self.assertEquals( 55 set(['testAllEnabled', 56 'testMacOnly', 57 'testNoChromeOS', 58 'testNoMavericks', 59 'testNoWinLinux', 60 'testSystemOnly']), 61 self._GetEnabledTests('system', MockPlatform('mac', 'lion'))) 62 63 def testCrosGuestChromeOS(self): 64 self.assertEquals( 65 set(['testAllEnabled', 66 'testChromeOSOnly', 67 'testNoMac', 68 'testNoMavericks', 69 'testNoSystem', 70 'testNoWinLinux']), 71 self._GetEnabledTests('cros-guest', MockPlatform('chromeos', ''))) 72 73 def testCanaryWindowsWin7(self): 74 self.assertEquals( 75 set(['testAllEnabled', 76 'testNoChromeOS', 77 'testNoMac', 78 'testNoMavericks', 79 'testNoSystem', 80 'testWinOrLinuxOnly']), 81 self._GetEnabledTests('canary', MockPlatform('win', 'win7'))) 82