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

(cherry picked from commit 2efe18bf27)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
This commit is contained in:
Miss Islington (bot) 2020-06-07 08:17:45 -07:00 committed by GitHub
parent 1d711f2e31
commit 71f501698d
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())