| LEFT | RIGHT |
| 1 """Test cases for the fnmatch module.""" | 1 """Test cases for the fnmatch module.""" |
| 2 | 2 |
| 3 from test import support | 3 from test import support |
| 4 import unittest | 4 import unittest |
| 5 import sys | |
| 6 | 5 |
| 7 from fnmatch import fnmatch, fnmatchcase, filter | 6 from fnmatch import fnmatch, fnmatchcase |
| 8 | 7 |
| 9 | 8 |
| 10 class FnmatchTestCase(unittest.TestCase): | 9 class FnmatchTestCase(unittest.TestCase): |
| 11 def check_match(self, filename, pattern, should_match=1): | 10 def check_match(self, filename, pattern, should_match=1): |
| 12 if should_match: | 11 if should_match: |
| 13 self.assert_(fnmatch(filename, pattern), | 12 self.assert_(fnmatch(filename, pattern), |
| 14 "expected %r to match pattern %r" | 13 "expected %r to match pattern %r" |
| 15 % (filename, pattern)) | 14 % (filename, pattern)) |
| 16 else: | 15 else: |
| 17 self.assert_(not fnmatch(filename, pattern), | 16 self.assert_(not fnmatch(filename, pattern), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 31 check('abc', 'ab[de]', 0) | 30 check('abc', 'ab[de]', 0) |
| 32 check('a', '??', 0) | 31 check('a', '??', 0) |
| 33 check('a', 'b', 0) | 32 check('a', 'b', 0) |
| 34 | 33 |
| 35 # these test that '\' is handled correctly in character sets; | 34 # these test that '\' is handled correctly in character sets; |
| 36 # see SF bug #??? | 35 # see SF bug #??? |
| 37 check('\\', r'[\]') | 36 check('\\', r'[\]') |
| 38 check('a', r'[!\]') | 37 check('a', r'[!\]') |
| 39 check('\\', r'[!\]', 0) | 38 check('\\', r'[!\]', 0) |
| 40 | 39 |
| 41 def test_filter_bytes(self): | 40 def test_mix_bytes_str(self): |
| 42 charset = sys.getfilesystemencoding() | 41 self.assertRaises(TypeError, fnmatch, 'test', b'*') |
| 43 abc = "abc".encode(charset) | 42 self.assertRaises(TypeError, fnmatch, b'test', '*') |
| 44 names = ["abc", abc] | 43 self.assertRaises(TypeError, fnmatchcase, 'test', b'*') |
| 45 self.assertEqual(filter(names, "*"), names) | 44 self.assertRaises(TypeError, fnmatchcase, b'test', '*') |
| 45 |
| 46 def test_bytes(self): |
| 47 self.check_match(b'test', b'te*') |
| 48 self.check_match(b'test\xff', b'te*\xff') |
| 46 | 49 |
| 47 def test_main(): | 50 def test_main(): |
| 48 support.run_unittest(FnmatchTestCase) | 51 support.run_unittest(FnmatchTestCase) |
| 49 | 52 |
| 50 | 53 |
| 51 if __name__ == "__main__": | 54 if __name__ == "__main__": |
| 52 test_main() | 55 test_main() |
| LEFT | RIGHT |