Commit e5e2bce7 authored by Tarek Ziadé's avatar Tarek Ziadé

fixed how fnmatch.translate is used (since it has changed in r74475 for...

fixed how fnmatch.translate is used (since it has changed in r74475 for #6665). Now the code is not harcoding the usage of $ anymore
parent 1d3e8e21
......@@ -342,12 +342,13 @@ def translate_pattern (pattern, anchor=1, prefix=None, is_regex=0):
pattern_re = ''
if prefix is not None:
prefix_re = (glob_to_re(prefix))[0:-1] # ditch trailing $
# ditch end of pattern character
empty_pattern = glob_to_re('')
prefix_re = (glob_to_re(prefix))[:-len(empty_pattern)]
pattern_re = "^" + os.path.join(prefix_re, ".*" + pattern_re)
else: # no prefix -- respect anchor flag
if anchor:
pattern_re = "^" + pattern_re
return re.compile(pattern_re)
# translate_pattern ()
......@@ -6,15 +6,15 @@ class FileListTestCase(unittest.TestCase):
def test_glob_to_re(self):
# simple cases
self.assertEquals(glob_to_re('foo*'), 'foo[^/]*$')
self.assertEquals(glob_to_re('foo?'), 'foo[^/]$')
self.assertEquals(glob_to_re('foo??'), 'foo[^/][^/]$')
self.assertEquals(glob_to_re('foo*'), 'foo[^/]*\\Z(?ms)')
self.assertEquals(glob_to_re('foo?'), 'foo[^/]\\Z(?ms)')
self.assertEquals(glob_to_re('foo??'), 'foo[^/][^/]\\Z(?ms)')
# special cases
self.assertEquals(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*$')
self.assertEquals(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*$')
self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]$')
self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]$')
self.assertEquals(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*\Z(?ms)')
self.assertEquals(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*\Z(?ms)')
self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)')
self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)')
def test_suite():
return unittest.makeSuite(FileListTestCase)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment