[Python-checkins] r82768 - in python/branches/release31-maint: Lib/fnmatch.py Lib/test/test_fnmatch.py

r.david.murray python-checkins at python.org
Sat Jul 10 16:00:10 CEST 2010


Author: r.david.murray
Date: Sat Jul 10 16:00:10 2010
New Revision: 82768

Log:
Merged revisions 82766 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

Since 'purge' is an API change, modified it to be _purge for 3.1
and deleted the doc update.

........
  r82766 | r.david.murray | 2010-07-10 09:52:13 -0400 (Sat, 10 Jul 2010) | 5 lines
  
  Fix 'refleak' introduced by fnmatch cache purge tests.
  
  This introduces a 'purge' function for the fnmatch module analogous
  to the 'purge' function in the re module.
........


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Lib/fnmatch.py
   python/branches/release31-maint/Lib/test/test_fnmatch.py

Modified: python/branches/release31-maint/Lib/fnmatch.py
==============================================================================
--- python/branches/release31-maint/Lib/fnmatch.py	(original)
+++ python/branches/release31-maint/Lib/fnmatch.py	Sat Jul 10 16:00:10 2010
@@ -12,12 +12,17 @@
 
 import re
 
-__all__ = ["filter", "fnmatch","fnmatchcase","translate"]
+__all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]
 
 _cache = {}  # Maps text patterns to compiled regexen.
 _cacheb = {}  # Ditto for bytes patterns.
 _MAXCACHE = 100 # Maximum size of caches
 
+def _purge():
+    """Clear the pattern cache"""
+    _cache.clear()
+    _cacheb.clear()
+
 def fnmatch(name, pat):
     """Test whether FILENAME matches PATTERN.
 

Modified: python/branches/release31-maint/Lib/test/test_fnmatch.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_fnmatch.py	(original)
+++ python/branches/release31-maint/Lib/test/test_fnmatch.py	Sat Jul 10 16:00:10 2010
@@ -3,10 +3,14 @@
 from test import support
 import unittest
 
-from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache, _cacheb
+from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache, _cacheb, _purge
 
 
 class FnmatchTestCase(unittest.TestCase):
+
+    def tearDown(self):
+        _purge()
+
     def check_match(self, filename, pattern, should_match=1):
         if should_match:
             self.assertTrue(fnmatch(filename, pattern),


More information about the Python-checkins mailing list