bpo-39791: Support file systems that cannot support non-ascii filenames (skipping tests in that case). (#20681)

This commit is contained in:
Jason R. Coombs 2020-06-07 10:57:45 -04:00 committed by GitHub
parent 47a23fc63f
commit 2efe18bf27
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View file

@ -210,6 +210,17 @@ def build_files(file_defs, prefix=pathlib.Path()):
f.write(DALS(contents))
class FileBuilder:
def unicode_filename(self):
try:
import test.support
except ImportError:
# outside CPython, hard-code a unicode snowman
return ''
return test.support.FS_NONASCII or \
self.skip("File system does not support non-ascii.")
def DALS(str):
"Dedent and left-strip"
return textwrap.dedent(str).lstrip()

View file

@ -254,11 +254,16 @@ class TestEntryPoints(unittest.TestCase):
assert self.ep.attr is None
class FileSystem(fixtures.OnSysPath, fixtures.SiteDir, unittest.TestCase):
class FileSystem(
fixtures.OnSysPath, fixtures.SiteDir, fixtures.FileBuilder,
unittest.TestCase):
def test_unicode_dir_on_sys_path(self):
"""
Ensure a Unicode subdirectory of a directory on sys.path
does not crash.
"""
fixtures.build_files({'': {}}, prefix=self.site_dir)
fixtures.build_files(
{self.unicode_filename(): {}},
prefix=self.site_dir,
)
list(distributions())