equal
deleted
inserted
replaced
|
1 """Test cases for the fnmatch module.""" |
|
2 |
|
3 from test import test_support |
|
4 import unittest |
|
5 |
|
6 from fnmatch import fnmatch, fnmatchcase |
|
7 |
|
8 |
|
9 class FnmatchTestCase(unittest.TestCase): |
|
10 def check_match(self, filename, pattern, should_match=1): |
|
11 if should_match: |
|
12 self.assert_(fnmatch(filename, pattern), |
|
13 "expected %r to match pattern %r" |
|
14 % (filename, pattern)) |
|
15 else: |
|
16 self.assert_(not fnmatch(filename, pattern), |
|
17 "expected %r not to match pattern %r" |
|
18 % (filename, pattern)) |
|
19 |
|
20 def test_fnmatch(self): |
|
21 check = self.check_match |
|
22 check('abc', 'abc') |
|
23 check('abc', '?*?') |
|
24 check('abc', '???*') |
|
25 check('abc', '*???') |
|
26 check('abc', '???') |
|
27 check('abc', '*') |
|
28 check('abc', 'ab[cd]') |
|
29 check('abc', 'ab[!de]') |
|
30 check('abc', 'ab[de]', 0) |
|
31 check('a', '??', 0) |
|
32 check('a', 'b', 0) |
|
33 |
|
34 # these test that '\' is handled correctly in character sets; |
|
35 # see SF bug #??? |
|
36 check('\\', r'[\]') |
|
37 check('a', r'[!\]') |
|
38 check('\\', r'[!\]', 0) |
|
39 |
|
40 |
|
41 def test_main(): |
|
42 test_support.run_unittest(FnmatchTestCase) |
|
43 |
|
44 |
|
45 if __name__ == "__main__": |
|
46 test_main() |