Add tests for fnmatch.filter and translate.
authorBrett Cannon <bcannon@gmail.com>
Fri, 23 Jul 2010 16:23:13 +0000 (16:23 +0000)
committerBrett Cannon <bcannon@gmail.com>
Fri, 23 Jul 2010 16:23:13 +0000 (16:23 +0000)
Partially closes issue 9356. Thanks to Brian Brazil for the patch.

Lib/test/test_fnmatch.py

index 496f145c02a3e4b1526ca690d8c148c547180d0e..a93558c7dd378dc2649423ecdac1faa60a663394 100644 (file)
@@ -3,7 +3,8 @@
 from test import support
 import unittest
 
-from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache, _cacheb, purge
+from fnmatch import (fnmatch, fnmatchcase, _MAXCACHE, _cache, _cacheb, purge,
+                        translate, filter)
 
 
 class FnmatchTestCase(unittest.TestCase):
@@ -80,8 +81,29 @@ class FnmatchTestCase(unittest.TestCase):
         self.assertLessEqual(len(_cacheb), _MAXCACHE)
 
 
+class TranslateTestCase(unittest.TestCase):
+
+    def test_translate(self):
+        self.assertEqual(translate('*'), '.*\Z(?ms)')
+        self.assertEqual(translate('?'), '.\Z(?ms)')
+        self.assertEqual(translate('a?b*'), 'a.b.*\Z(?ms)')
+        self.assertEqual(translate('[abc]'), '[abc]\Z(?ms)')
+        self.assertEqual(translate('[]]'), '[]]\Z(?ms)')
+        self.assertEqual(translate('[!x]'), '[^x]\Z(?ms)')
+        self.assertEqual(translate('[^x]'), '[\\^x]\Z(?ms)')
+        self.assertEqual(translate('[x'), '\\[x\Z(?ms)')
+
+
+class FilterTestCase(unittest.TestCase):
+
+    def test_filter(self):
+        self.assertEqual(filter(['a', 'b'], 'a'), ['a'])
+
+
 def test_main():
-    support.run_unittest(FnmatchTestCase)
+    support.run_unittest(FnmatchTestCase,
+                         TranslateTestCase,
+                         FilterTestCase)
 
 
 if __name__ == "__main__":