Skip to content

Commit f8db9de

Browse files
committed
Fix regex tests on Python 3.14
1 parent 603b94e commit f8db9de

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

distutils/tests/test_filelist.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import logging
44
import os
55
import re
6+
import sys
67
from distutils import debug, filelist
78
from distutils.errors import DistutilsTemplateError
89
from distutils.filelist import FileList, glob_to_re, translate_pattern
@@ -45,22 +46,22 @@ def assertWarnings(self, caplog):
4546
caplog.clear()
4647

4748
def test_glob_to_re(self):
48-
sep = os.sep
49-
if os.sep == '\\':
50-
sep = re.escape(os.sep)
49+
sep = re.escape(os.sep) if os.sep == '\\' else os.sep
50+
# https://docs.python.org/3/whatsnew/3.14.html#re
51+
end_of_str_metachar = r"\z" if sys.version_info >= (3, 14) else r"\Z"
5152

5253
for glob, regex in (
5354
# simple cases
54-
('foo*', r'(?s:foo[^%(sep)s]*)\Z'),
55-
('foo?', r'(?s:foo[^%(sep)s])\Z'),
56-
('foo??', r'(?s:foo[^%(sep)s][^%(sep)s])\Z'),
55+
('foo*', r'(?s:foo[^%(sep)s]*)%(eos)s'),
56+
('foo?', r'(?s:foo[^%(sep)s])%(eos)s'),
57+
('foo??', r'(?s:foo[^%(sep)s][^%(sep)s])%(eos)s'),
5758
# special cases
58-
(r'foo\\*', r'(?s:foo\\\\[^%(sep)s]*)\Z'),
59-
(r'foo\\\*', r'(?s:foo\\\\\\[^%(sep)s]*)\Z'),
60-
('foo????', r'(?s:foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s])\Z'),
61-
(r'foo\\??', r'(?s:foo\\\\[^%(sep)s][^%(sep)s])\Z'),
59+
(r'foo\\*', r'(?s:foo\\\\[^%(sep)s]*)%(eos)s'),
60+
(r'foo\\\*', r'(?s:foo\\\\\\[^%(sep)s]*)%(eos)s'),
61+
('foo????', r'(?s:foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s])%(eos)s'),
62+
(r'foo\\??', r'(?s:foo\\\\[^%(sep)s][^%(sep)s])%(eos)s'),
6263
):
63-
regex = regex % {'sep': sep}
64+
regex = regex % {'sep': sep, 'eos': end_of_str_metachar}
6465
assert glob_to_re(glob) == regex
6566

6667
def test_process_template_line(self):

0 commit comments

Comments
 (0)