1 #!/usr/bin/env python 2 # Copyright 2015 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 # pylint: disable=protected-access 7 8 import logging 9 import sys 10 import unittest 11 import unittest_util 12 13 14 class FilterTestNamesTest(unittest.TestCase): 15 16 possible_list = ["Foo.One", 17 "Foo.Two", 18 "Foo.Three", 19 "Bar.One", 20 "Bar.Two", 21 "Bar.Three", 22 "Quux.One", 23 "Quux.Two", 24 "Quux.Three"] 25 26 def testMatchAll(self): 27 x = unittest_util.FilterTestNames(self.possible_list, "*") 28 self.assertEquals(x, self.possible_list) 29 30 def testMatchPartial(self): 31 x = unittest_util.FilterTestNames(self.possible_list, "Foo.*") 32 self.assertEquals(x, ["Foo.One", "Foo.Two", "Foo.Three"]) 33 34 def testMatchFull(self): 35 x = unittest_util.FilterTestNames(self.possible_list, "Foo.Two") 36 self.assertEquals(x, ["Foo.Two"]) 37 38 def testMatchTwo(self): 39 x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:Foo.*") 40 self.assertEquals(x, ["Bar.One", 41 "Bar.Two", 42 "Bar.Three", 43 "Foo.One", 44 "Foo.Two", 45 "Foo.Three"]) 46 47 def testMatchWithNegative(self): 48 x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:Foo.*-*.Three") 49 self.assertEquals(x, ["Bar.One", 50 "Bar.Two", 51 "Foo.One", 52 "Foo.Two"]) 53 54 def testMatchOverlapping(self): 55 x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:*.Two") 56 self.assertEquals(x, ["Bar.One", 57 "Bar.Two", 58 "Bar.Three", 59 "Foo.Two", 60 "Quux.Two"]) 61 62 63 if __name__ == '__main__': 64 logging.getLogger().setLevel(logging.DEBUG) 65 unittest.main(verbosity=2) 66