Merged revisions 82769 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

................
  r82769 | r.david.murray | 2010-07-10 10:06:51 -0400 (Sat, 10 Jul 2010) | 15 lines

  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 2.x
  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.
  ........
................
This commit is contained in:
R. David Murray 2010-07-10 14:11:51 +00:00
parent bda5f2b3d9
commit fd47cdceb2
2 changed files with 10 additions and 1 deletions

View File

@ -12,11 +12,15 @@ corresponding to PATTERN. (It does not compile it.)
import re
__all__ = ["filter", "fnmatch","fnmatchcase","translate"]
__all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]
_cache = {}
_MAXCACHE = 100
def _purge():
"""Clear the pattern cache"""
_cache.clear()
def fnmatch(name, pat):
"""Test whether FILENAME matches PATTERN.

View File

@ -4,9 +4,14 @@ from test import test_support
import unittest
from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache
from fnmatch import fnmatch, fnmatchcase, _MAXCACHE, _cache, _purge
class FnmatchTestCase(unittest.TestCase):
def tearDown(self):
_purge()
def check_match(self, filename, pattern, should_match=1, fn=fnmatch):
if should_match:
self.assertTrue(fn(filename, pattern),