diff options
author | Meador Inge <meadori@gmail.com> | 2013-09-04 00:43:49 (GMT) |
---|---|---|
committer | Meador Inge <meadori@gmail.com> | 2013-09-04 00:43:49 (GMT) |
commit | c9e1dcdd5323b11d1d4e901dbc74287a2672bc04 (patch) | |
tree | 8785f563e36d4e232ba14171578604c81995caaa /Lib | |
parent | d151da9ef7de3ce93f0e29a62ae2a470495db1d0 (diff) | |
download | cpython-c9e1dcdd5323b11d1d4e901dbc74287a2672bc04.zip cpython-c9e1dcdd5323b11d1d4e901dbc74287a2672bc04.tar.gz cpython-c9e1dcdd5323b11d1d4e901dbc74287a2672bc04.tar.bz2 |
Issue #16826: Revert fix while Windows issues are being worked out.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/importlib/_bootstrap.py | 5 | ||||
-rw-r--r-- | Lib/test/test_importlib/extension/test_case_sensitivity.py | 37 | ||||
-rw-r--r-- | Lib/test/test_importlib/source/test_case_sensitivity.py | 67 |
3 files changed, 19 insertions, 90 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index f4fdc82..ff10308 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -33,10 +33,7 @@ def _make_relax_case(): if sys.platform.startswith(_CASE_INSENSITIVE_PLATFORMS): def _relax_case(): """True if filenames must be checked case-insensitively.""" - if sys.flags.ignore_environment: - return False - else: - return b'PYTHONCASEOK' in _os.environ + return b'PYTHONCASEOK' in _os.environ else: def _relax_case(): """True if filenames must be checked case-insensitively.""" diff --git a/Lib/test/test_importlib/extension/test_case_sensitivity.py b/Lib/test/test_importlib/extension/test_case_sensitivity.py index e1194db..76c53e4 100644 --- a/Lib/test/test_importlib/extension/test_case_sensitivity.py +++ b/Lib/test/test_importlib/extension/test_case_sensitivity.py @@ -5,8 +5,7 @@ import unittest from importlib import _bootstrap from .. import util from . import util as ext_util -import os -import subprocess + @util.case_insensitive_tests class ExtensionModuleCaseSensitivityTest(unittest.TestCase): @@ -30,34 +29,14 @@ class ExtensionModuleCaseSensitivityTest(unittest.TestCase): self.assertIsNone(loader) def test_case_insensitivity(self): - find_snippet = """if True: - from importlib import _bootstrap - import sys - finder = _bootstrap.FileFinder('{path}', - (_bootstrap.ExtensionFileLoader, - _bootstrap.EXTENSION_SUFFIXES)) - loader = finder.find_module('{bad_name}') - print(str(hasattr(loader, 'load_module'))) - """.format(bad_name=ext_util.NAME.upper(), path=ext_util.PATH) - - newenv = os.environ.copy() - newenv["PYTHONCASEOK"] = "1" - - def check_output(expected, extra_arg=None): - args = [sys.executable] - if extra_arg: - args.append(extra_arg) - args.extend(["-c", find_snippet]) - p = subprocess.Popen(args, stdout=subprocess.PIPE, env=newenv) - actual = p.communicate()[0].decode().strip() - self.assertEqual(expected, actual) - self.assertEqual(p.wait(), 0) - - # Test with PYTHONCASEOK=1. - check_output("True") + with support.EnvironmentVarGuard() as env: + env.set('PYTHONCASEOK', '1') + if b'PYTHONCASEOK' not in _bootstrap._os.environ: + self.skipTest('os.environ changes not reflected in ' + '_os.environ') + loader = self.find_module() + self.assertTrue(hasattr(loader, 'load_module')) - # Test with PYTHONCASEOK=1 ignored because of -E. - check_output("False", "-E") diff --git a/Lib/test/test_importlib/source/test_case_sensitivity.py b/Lib/test/test_importlib/source/test_case_sensitivity.py index 7169c7b..241173f 100644 --- a/Lib/test/test_importlib/source/test_case_sensitivity.py +++ b/Lib/test/test_importlib/source/test_case_sensitivity.py @@ -8,7 +8,6 @@ import os import sys from test import support as test_support import unittest -import subprocess @util.case_insensitive_tests @@ -51,62 +50,16 @@ class CaseSensitivityTest(unittest.TestCase): self.assertIsNone(insensitive) def test_insensitive(self): - sensitive_pkg = 'sensitive.{0}'.format(self.name) - insensitive_pkg = 'insensitive.{0}'.format(self.name.lower()) - context = source_util.create_modules(insensitive_pkg, sensitive_pkg) - with context as mapping: - sensitive_path = os.path.join(mapping['.root'], 'sensitive') - insensitive_path = os.path.join(mapping['.root'], 'insensitive') - find_snippet = """if True: - import sys - from importlib import machinery - - def find(path): - f = machinery.FileFinder(path, - (machinery.SourceFileLoader, - machinery.SOURCE_SUFFIXES), - (machinery.SourcelessFileLoader, - machinery.BYTECODE_SUFFIXES)) - return f.find_module('{name}') - - sensitive = find('{sensitive_path}') - insensitive = find('{insensitive_path}') - print(str(hasattr(sensitive, 'load_module'))) - if hasattr(sensitive, 'load_module'): - print(sensitive.get_filename('{name}')) - else: - print('None') - print(str(hasattr(insensitive, 'load_module'))) - if hasattr(insensitive, 'load_module'): - print(insensitive.get_filename('{name}')) - else: - print('None') - """.format(sensitive_path=sensitive_path, - insensitive_path=insensitive_path, - name=self.name) - - newenv = os.environ.copy() - newenv["PYTHONCASEOK"] = "1" - - def check_output(expected, extra_arg=None): - args = [sys.executable] - if extra_arg: - args.append(extra_arg) - args.extend(["-c", find_snippet]) - p = subprocess.Popen(args, stdout=subprocess.PIPE, - env=newenv) - actual = p.communicate()[0].decode().split() - self.assertEqual(expected[0], actual[0]) - self.assertIn(expected[1], actual[1]) - self.assertEqual(expected[2], actual[2]) - self.assertIn(expected[3], actual[3]) - self.assertEqual(p.wait(), 0) - - # Test with PYTHONCASEOK=1. - check_output(["True", self.name, "True", self.name]) - - # Test with PYTHONCASEOK=1 ignored because of -E. - check_output(["True", self.name, "False", "None"], "-E") + with test_support.EnvironmentVarGuard() as env: + env.set('PYTHONCASEOK', '1') + if b'PYTHONCASEOK' not in _bootstrap._os.environ: + self.skipTest('os.environ changes not reflected in ' + '_os.environ') + sensitive, insensitive = self.sensitivity_test() + self.assertTrue(hasattr(sensitive, 'load_module')) + self.assertIn(self.name, sensitive.get_filename(self.name)) + self.assertTrue(hasattr(insensitive, 'load_module')) + self.assertIn(self.name, insensitive.get_filename(self.name)) def test_main(): |