summaryrefslogtreecommitdiff
path: root/Lib/test/test_importlib/extension/test_case_sensitivity.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_importlib/extension/test_case_sensitivity.py')
-rw-r--r--Lib/test/test_importlib/extension/test_case_sensitivity.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/Lib/test/test_importlib/extension/test_case_sensitivity.py b/Lib/test/test_importlib/extension/test_case_sensitivity.py
new file mode 100644
index 0000000000..76c53e4fd6
--- /dev/null
+++ b/Lib/test/test_importlib/extension/test_case_sensitivity.py
@@ -0,0 +1,50 @@
+import imp
+import sys
+from test import support
+import unittest
+from importlib import _bootstrap
+from .. import util
+from . import util as ext_util
+
+
+@util.case_insensitive_tests
+class ExtensionModuleCaseSensitivityTest(unittest.TestCase):
+
+ def find_module(self):
+ good_name = ext_util.NAME
+ bad_name = good_name.upper()
+ assert good_name != bad_name
+ finder = _bootstrap.FileFinder(ext_util.PATH,
+ (_bootstrap.ExtensionFileLoader,
+ _bootstrap.EXTENSION_SUFFIXES))
+ return finder.find_module(bad_name)
+
+ def test_case_sensitive(self):
+ with support.EnvironmentVarGuard() as env:
+ env.unset('PYTHONCASEOK')
+ if b'PYTHONCASEOK' in _bootstrap._os.environ:
+ self.skipTest('os.environ changes not reflected in '
+ '_os.environ')
+ loader = self.find_module()
+ 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'))
+
+
+
+
+def test_main():
+ if ext_util.FILENAME is None:
+ return
+ support.run_unittest(ExtensionModuleCaseSensitivityTest)
+
+
+if __name__ == '__main__':
+ test_main()