mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-133306: Use \z instead of \Z in fnmatch.translate() and glob.translate() (GH-133338)
This commit is contained in:
parent
cb3174113e
commit
add0ca9ea0
7 changed files with 96 additions and 94 deletions
|
@ -459,59 +459,59 @@ class GlobTests(unittest.TestCase):
|
|||
def test_translate(self):
|
||||
def fn(pat):
|
||||
return glob.translate(pat, seps='/')
|
||||
self.assertEqual(fn('foo'), r'(?s:foo)\Z')
|
||||
self.assertEqual(fn('foo/bar'), r'(?s:foo/bar)\Z')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/.][^/]*)\Z')
|
||||
self.assertEqual(fn('?'), r'(?s:(?!\.)[^/])\Z')
|
||||
self.assertEqual(fn('a*'), r'(?s:a[^/]*)\Z')
|
||||
self.assertEqual(fn('*a'), r'(?s:(?!\.)[^/]*a)\Z')
|
||||
self.assertEqual(fn('.*'), r'(?s:\.[^/]*)\Z')
|
||||
self.assertEqual(fn('?aa'), r'(?s:(?!\.)[^/]aa)\Z')
|
||||
self.assertEqual(fn('aa?'), r'(?s:aa[^/])\Z')
|
||||
self.assertEqual(fn('aa[ab]'), r'(?s:aa[ab])\Z')
|
||||
self.assertEqual(fn('**'), r'(?s:(?!\.)[^/]*)\Z')
|
||||
self.assertEqual(fn('***'), r'(?s:(?!\.)[^/]*)\Z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\Z')
|
||||
self.assertEqual(fn('**b'), r'(?s:(?!\.)[^/]*b)\Z')
|
||||
self.assertEqual(fn('foo'), r'(?s:foo)\z')
|
||||
self.assertEqual(fn('foo/bar'), r'(?s:foo/bar)\z')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/.][^/]*)\z')
|
||||
self.assertEqual(fn('?'), r'(?s:(?!\.)[^/])\z')
|
||||
self.assertEqual(fn('a*'), r'(?s:a[^/]*)\z')
|
||||
self.assertEqual(fn('*a'), r'(?s:(?!\.)[^/]*a)\z')
|
||||
self.assertEqual(fn('.*'), r'(?s:\.[^/]*)\z')
|
||||
self.assertEqual(fn('?aa'), r'(?s:(?!\.)[^/]aa)\z')
|
||||
self.assertEqual(fn('aa?'), r'(?s:aa[^/])\z')
|
||||
self.assertEqual(fn('aa[ab]'), r'(?s:aa[ab])\z')
|
||||
self.assertEqual(fn('**'), r'(?s:(?!\.)[^/]*)\z')
|
||||
self.assertEqual(fn('***'), r'(?s:(?!\.)[^/]*)\z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\z')
|
||||
self.assertEqual(fn('**b'), r'(?s:(?!\.)[^/]*b)\z')
|
||||
self.assertEqual(fn('/**/*/*.*/**'),
|
||||
r'(?s:/(?!\.)[^/]*/[^/.][^/]*/(?!\.)[^/]*\.[^/]*/(?!\.)[^/]*)\Z')
|
||||
r'(?s:/(?!\.)[^/]*/[^/.][^/]*/(?!\.)[^/]*\.[^/]*/(?!\.)[^/]*)\z')
|
||||
|
||||
def test_translate_include_hidden(self):
|
||||
def fn(pat):
|
||||
return glob.translate(pat, include_hidden=True, seps='/')
|
||||
self.assertEqual(fn('foo'), r'(?s:foo)\Z')
|
||||
self.assertEqual(fn('foo/bar'), r'(?s:foo/bar)\Z')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/]+)\Z')
|
||||
self.assertEqual(fn('?'), r'(?s:[^/])\Z')
|
||||
self.assertEqual(fn('a*'), r'(?s:a[^/]*)\Z')
|
||||
self.assertEqual(fn('*a'), r'(?s:[^/]*a)\Z')
|
||||
self.assertEqual(fn('.*'), r'(?s:\.[^/]*)\Z')
|
||||
self.assertEqual(fn('?aa'), r'(?s:[^/]aa)\Z')
|
||||
self.assertEqual(fn('aa?'), r'(?s:aa[^/])\Z')
|
||||
self.assertEqual(fn('aa[ab]'), r'(?s:aa[ab])\Z')
|
||||
self.assertEqual(fn('**'), r'(?s:[^/]*)\Z')
|
||||
self.assertEqual(fn('***'), r'(?s:[^/]*)\Z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\Z')
|
||||
self.assertEqual(fn('**b'), r'(?s:[^/]*b)\Z')
|
||||
self.assertEqual(fn('/**/*/*.*/**'), r'(?s:/[^/]*/[^/]+/[^/]*\.[^/]*/[^/]*)\Z')
|
||||
self.assertEqual(fn('foo'), r'(?s:foo)\z')
|
||||
self.assertEqual(fn('foo/bar'), r'(?s:foo/bar)\z')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/]+)\z')
|
||||
self.assertEqual(fn('?'), r'(?s:[^/])\z')
|
||||
self.assertEqual(fn('a*'), r'(?s:a[^/]*)\z')
|
||||
self.assertEqual(fn('*a'), r'(?s:[^/]*a)\z')
|
||||
self.assertEqual(fn('.*'), r'(?s:\.[^/]*)\z')
|
||||
self.assertEqual(fn('?aa'), r'(?s:[^/]aa)\z')
|
||||
self.assertEqual(fn('aa?'), r'(?s:aa[^/])\z')
|
||||
self.assertEqual(fn('aa[ab]'), r'(?s:aa[ab])\z')
|
||||
self.assertEqual(fn('**'), r'(?s:[^/]*)\z')
|
||||
self.assertEqual(fn('***'), r'(?s:[^/]*)\z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\z')
|
||||
self.assertEqual(fn('**b'), r'(?s:[^/]*b)\z')
|
||||
self.assertEqual(fn('/**/*/*.*/**'), r'(?s:/[^/]*/[^/]+/[^/]*\.[^/]*/[^/]*)\z')
|
||||
|
||||
def test_translate_recursive(self):
|
||||
def fn(pat):
|
||||
return glob.translate(pat, recursive=True, include_hidden=True, seps='/')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/]+)\Z')
|
||||
self.assertEqual(fn('?'), r'(?s:[^/])\Z')
|
||||
self.assertEqual(fn('**'), r'(?s:.*)\Z')
|
||||
self.assertEqual(fn('**/**'), r'(?s:.*)\Z')
|
||||
self.assertEqual(fn('***'), r'(?s:[^/]*)\Z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\Z')
|
||||
self.assertEqual(fn('**b'), r'(?s:[^/]*b)\Z')
|
||||
self.assertEqual(fn('/**/*/*.*/**'), r'(?s:/(?:.+/)?[^/]+/[^/]*\.[^/]*/.*)\Z')
|
||||
self.assertEqual(fn('*'), r'(?s:[^/]+)\z')
|
||||
self.assertEqual(fn('?'), r'(?s:[^/])\z')
|
||||
self.assertEqual(fn('**'), r'(?s:.*)\z')
|
||||
self.assertEqual(fn('**/**'), r'(?s:.*)\z')
|
||||
self.assertEqual(fn('***'), r'(?s:[^/]*)\z')
|
||||
self.assertEqual(fn('a**'), r'(?s:a[^/]*)\z')
|
||||
self.assertEqual(fn('**b'), r'(?s:[^/]*b)\z')
|
||||
self.assertEqual(fn('/**/*/*.*/**'), r'(?s:/(?:.+/)?[^/]+/[^/]*\.[^/]*/.*)\z')
|
||||
|
||||
def test_translate_seps(self):
|
||||
def fn(pat):
|
||||
return glob.translate(pat, recursive=True, include_hidden=True, seps=['/', '\\'])
|
||||
self.assertEqual(fn('foo/bar\\baz'), r'(?s:foo[/\\]bar[/\\]baz)\Z')
|
||||
self.assertEqual(fn('**/*'), r'(?s:(?:.+[/\\])?[^/\\]+)\Z')
|
||||
self.assertEqual(fn('foo/bar\\baz'), r'(?s:foo[/\\]bar[/\\]baz)\z')
|
||||
self.assertEqual(fn('**/*'), r'(?s:(?:.+[/\\])?[^/\\]+)\z')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue