Commit 889b0aa4 authored by Tarek Ziadé's avatar Tarek Ziadé

Merged revisions 71280 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71280 | tarek.ziade | 2009-04-05 23:44:08 +0200 (Sun, 05 Apr 2009) | 1 line

  Fixed #1491431: distutils.filelist.glob_to_re was broken for some edge cases (detailed in the test
........
parent 965ce879
......@@ -289,7 +289,8 @@ def glob_to_re(pattern):
# character except the special characters.
# XXX currently the "special characters" are just slash -- i.e. this is
# Unix-only.
pattern_re = re.sub(r'(^|[^\\])\.', r'\1[^/]', pattern_re)
pattern_re = re.sub(r'((?<!\\)(\\\\)*)\.', r'\1[^/]', pattern_re)
return pattern_re
......
"""Tests for distutils.filelist."""
import unittest
from distutils.filelist import glob_to_re
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[^/][^/]$')
# 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\\\\[^/][^/]$')
def test_suite():
return unittest.makeSuite(FileListTestCase)
if __name__ == "__main__":
unittest.main(defaultTest="test_suite")
......@@ -327,6 +327,9 @@ Core and Builtins
Library
-------
- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
Initial fix by Wayne Davison.
- Issue #5694: removed spurious test output in Distutils (test_clean).
- Issue #1326077: fix the formatting of SyntaxErrors by the traceback module.
......
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