summaryrefslogtreecommitdiffstats
path: root/Lib/importlib
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2009-02-07 02:06:43 (GMT)
committerBrett Cannon <bcannon@gmail.com>2009-02-07 02:06:43 (GMT)
commit534b2cd176a0440b59980d97723e109638216c1c (patch)
treeff57b132a27c308633c8a2f331650d1e50af2d15 /Lib/importlib
parent36d1f3eb41a5903d11076e72080bb1971b6818bb (diff)
downloadcpython-534b2cd176a0440b59980d97723e109638216c1c.zip
cpython-534b2cd176a0440b59980d97723e109638216c1c.tar.gz
cpython-534b2cd176a0440b59980d97723e109638216c1c.tar.bz2
Factor out helper code from importlib.test.extension.test_path_hook.
Diffstat (limited to 'Lib/importlib')
-rw-r--r--Lib/importlib/NOTES2
-rw-r--r--Lib/importlib/test/extension/test_case_sensitivity.py6
-rw-r--r--Lib/importlib/test/extension/test_finder.py6
-rw-r--r--Lib/importlib/test/extension/test_loader.py23
-rw-r--r--Lib/importlib/test/extension/test_path_hook.py23
-rw-r--r--Lib/importlib/test/util.py3
6 files changed, 21 insertions, 42 deletions
diff --git a/Lib/importlib/NOTES b/Lib/importlib/NOTES
index c1df89b..e1ec98d 100644
--- a/Lib/importlib/NOTES
+++ b/Lib/importlib/NOTES
@@ -1,8 +1,6 @@
to do
/////
-* Extract test_path_hooks constants into a util module for extension testing.
-
* Backport a poor-man's functools.wraps.
* Implement PEP 302 protocol for loaders (should just be a matter of testing).
diff --git a/Lib/importlib/test/extension/test_case_sensitivity.py b/Lib/importlib/test/extension/test_case_sensitivity.py
index c328af2..eb05ad3 100644
--- a/Lib/importlib/test/extension/test_case_sensitivity.py
+++ b/Lib/importlib/test/extension/test_case_sensitivity.py
@@ -3,17 +3,17 @@ from test import support
import unittest
import importlib
from .. import util
-from . import test_path_hook
+from . import util as ext_util
@util.case_insensitive_tests
class ExtensionModuleCaseSensitivityTest(unittest.TestCase):
def find_module(self):
- good_name = test_path_hook.NAME
+ good_name = ext_util.NAME
bad_name = good_name.upper()
assert good_name != bad_name
- finder = importlib.ExtensionFileImporter(test_path_hook.PATH)
+ finder = importlib.ExtensionFileImporter(ext_util.PATH)
return finder.find_module(bad_name)
def test_case_sensitive(self):
diff --git a/Lib/importlib/test/extension/test_finder.py b/Lib/importlib/test/extension/test_finder.py
index c22186c..7321e31 100644
--- a/Lib/importlib/test/extension/test_finder.py
+++ b/Lib/importlib/test/extension/test_finder.py
@@ -1,6 +1,6 @@
import importlib
from .. import abc
-from . import test_path_hook
+from . import util
import unittest
@@ -9,11 +9,11 @@ class FinderTests(abc.FinderTests):
"""Test the finder for extension modules."""
def find_module(self, fullname):
- importer = importlib.ExtensionFileImporter(test_path_hook.PATH)
+ importer = importlib.ExtensionFileImporter(util.PATH)
return importer.find_module(fullname)
def test_module(self):
- self.assert_(self.find_module(test_path_hook.NAME))
+ self.assert_(self.find_module(util.NAME))
def test_package(self):
# Extension modules cannot be an __init__ for a package.
diff --git a/Lib/importlib/test/extension/test_loader.py b/Lib/importlib/test/extension/test_loader.py
index 01f3426..ca9f2a7 100644
--- a/Lib/importlib/test/extension/test_loader.py
+++ b/Lib/importlib/test/extension/test_loader.py
@@ -1,5 +1,5 @@
import importlib
-from . import test_path_hook
+from . import util as ext_util
from .. import abc
from .. import util
@@ -12,19 +12,18 @@ class LoaderTests(abc.LoaderTests):
"""Test load_module() for extension modules."""
def load_module(self, fullname):
- loader = importlib._ExtensionFileLoader(test_path_hook.NAME,
- test_path_hook.FILEPATH,
- False)
+ loader = importlib._ExtensionFileLoader(ext_util.NAME,
+ ext_util.FILEPATH, False)
return loader.load_module(fullname)
def test_module(self):
- with util.uncache(test_path_hook.NAME):
- module = self.load_module(test_path_hook.NAME)
- for attr, value in [('__name__', test_path_hook.NAME),
- ('__file__', test_path_hook.FILEPATH),
+ with util.uncache(ext_util.NAME):
+ module = self.load_module(ext_util.NAME)
+ for attr, value in [('__name__', ext_util.NAME),
+ ('__file__', ext_util.FILEPATH),
('__package__', '')]:
self.assertEqual(getattr(module, attr), value)
- self.assert_(test_path_hook.NAME in sys.modules)
+ self.assert_(ext_util.NAME in sys.modules)
def test_package(self):
# Extensions are not found in packages.
@@ -35,9 +34,9 @@ class LoaderTests(abc.LoaderTests):
pass
def test_module_reuse(self):
- with util.uncache(test_path_hook.NAME):
- module1 = self.load_module(test_path_hook.NAME)
- module2 = self.load_module(test_path_hook.NAME)
+ with util.uncache(ext_util.NAME):
+ module1 = self.load_module(ext_util.NAME)
+ module2 = self.load_module(ext_util.NAME)
self.assert_(module1 is module2)
def test_state_after_failure(self):
diff --git a/Lib/importlib/test/extension/test_path_hook.py b/Lib/importlib/test/extension/test_path_hook.py
index f1774fd..674fd90 100644
--- a/Lib/importlib/test/extension/test_path_hook.py
+++ b/Lib/importlib/test/extension/test_path_hook.py
@@ -1,31 +1,12 @@
import importlib
+from . import util
import collections
import imp
-from os import path
import sys
import unittest
-PATH = None
-EXT = None
-FILENAME = None
-NAME = '_testcapi'
-_file_exts = [x[0] for x in imp.get_suffixes() if x[2] == imp.C_EXTENSION]
-try:
- for PATH in sys.path:
- for EXT in _file_exts:
- FILENAME = NAME + EXT
- FILEPATH = path.join(PATH, FILENAME)
- if path.exists(path.join(PATH, FILENAME)):
- raise StopIteration
- else:
- PATH = EXT = FILENAME = FILEPATH = None
-except StopIteration:
- pass
-del _file_exts
-
-
class PathHookTests(unittest.TestCase):
"""Test the path hook for extension modules."""
@@ -38,7 +19,7 @@ class PathHookTests(unittest.TestCase):
def test_success(self):
# Path hook should handle a directory where a known extension module
# exists.
- self.assert_(hasattr(self.hook(PATH), 'find_module'))
+ self.assert_(hasattr(self.hook(util.PATH), 'find_module'))
def test_main():
diff --git a/Lib/importlib/test/util.py b/Lib/importlib/test/util.py
index f41a661..2698ef4 100644
--- a/Lib/importlib/test/util.py
+++ b/Lib/importlib/test/util.py
@@ -2,6 +2,7 @@ from contextlib import contextmanager
import imp
import os.path
from test.support import unlink
+import unittest
import sys
@@ -9,7 +10,7 @@ def case_insensitive_tests(class_):
"""Class decorator that nullifies tests that require a case-insensitive
file system."""
if sys.platform not in ('win32', 'darwin', 'cygwin'):
- return object()
+ return unittest.TestCase
else:
return class_