diff options
author | Meador Inge <meadori@gmail.com> | 2013-09-03 21:53:22 (GMT) |
---|---|---|
committer | Meador Inge <meadori@gmail.com> | 2013-09-03 21:53:22 (GMT) |
commit | 9ab358ad7cfc235556f52923bcf265b5bc32b4fc (patch) | |
tree | 7c1c2b1a5ad6706cc07e61236effadc4ff3d0f97 /Lib/test/test_importlib/extension | |
parent | c6171e49ab2aee5807bcb6c0f77d0de13a164a99 (diff) | |
parent | d151da9ef7de3ce93f0e29a62ae2a470495db1d0 (diff) | |
download | cpython-9ab358ad7cfc235556f52923bcf265b5bc32b4fc.zip cpython-9ab358ad7cfc235556f52923bcf265b5bc32b4fc.tar.gz cpython-9ab358ad7cfc235556f52923bcf265b5bc32b4fc.tar.bz2 |
Issue #16826: Don't check for PYTHONCASEOK when using -E.
This commit fixes a regression that sneaked into Python 3.3 where importlib
was not respecting -E when checking for the PYTHONCASEOK environment variable.
Diffstat (limited to 'Lib/test/test_importlib/extension')
-rw-r--r-- | Lib/test/test_importlib/extension/test_case_sensitivity.py | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/Lib/test/test_importlib/extension/test_case_sensitivity.py b/Lib/test/test_importlib/extension/test_case_sensitivity.py index 2b536e2..5764756 100644 --- a/Lib/test/test_importlib/extension/test_case_sensitivity.py +++ b/Lib/test/test_importlib/extension/test_case_sensitivity.py @@ -6,7 +6,8 @@ from importlib import _bootstrap from importlib import machinery from .. import util from . import util as ext_util - +import os +import subprocess @util.case_insensitive_tests class ExtensionModuleCaseSensitivityTest(unittest.TestCase): @@ -30,14 +31,34 @@ class ExtensionModuleCaseSensitivityTest(unittest.TestCase): self.assertIsNone(loader) def test_case_insensitivity(self): - 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')) + 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") + # Test with PYTHONCASEOK=1 ignored because of -E. + check_output("False", "-E") |