|  | #!/usr/bin/env python | 
|  | # Copyright 2015 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. | 
|  |  | 
|  | # pylint: disable=protected-access | 
|  |  | 
|  | import logging | 
|  | import sys | 
|  | import unittest | 
|  | import unittest_util | 
|  |  | 
|  |  | 
|  | class FilterTestNamesTest(unittest.TestCase): | 
|  |  | 
|  | possible_list = ["Foo.One", | 
|  | "Foo.Two", | 
|  | "Foo.Three", | 
|  | "Bar.One", | 
|  | "Bar.Two", | 
|  | "Bar.Three", | 
|  | "Quux.One", | 
|  | "Quux.Two", | 
|  | "Quux.Three"] | 
|  |  | 
|  | def testMatchAll(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "*") | 
|  | self.assertEquals(x, self.possible_list) | 
|  |  | 
|  | def testMatchPartial(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "Foo.*") | 
|  | self.assertEquals(x, ["Foo.One", "Foo.Two", "Foo.Three"]) | 
|  |  | 
|  | def testMatchFull(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "Foo.Two") | 
|  | self.assertEquals(x, ["Foo.Two"]) | 
|  |  | 
|  | def testMatchTwo(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:Foo.*") | 
|  | self.assertEquals(x, ["Bar.One", | 
|  | "Bar.Two", | 
|  | "Bar.Three", | 
|  | "Foo.One", | 
|  | "Foo.Two", | 
|  | "Foo.Three"]) | 
|  |  | 
|  | def testMatchWithNegative(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:Foo.*-*.Three") | 
|  | self.assertEquals(x, ["Bar.One", | 
|  | "Bar.Two", | 
|  | "Foo.One", | 
|  | "Foo.Two"]) | 
|  |  | 
|  | def testMatchOverlapping(self): | 
|  | x = unittest_util.FilterTestNames(self.possible_list, "Bar.*:*.Two") | 
|  | self.assertEquals(x, ["Bar.One", | 
|  | "Bar.Two", | 
|  | "Bar.Three", | 
|  | "Foo.Two", | 
|  | "Quux.Two"]) | 
|  |  | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | logging.getLogger().setLevel(logging.DEBUG) | 
|  | unittest.main(verbosity=2) |