summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_modulefinder.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_modulefinder.py')
-rw-r--r--lib/python2.7/test/test_modulefinder.py286
1 files changed, 0 insertions, 286 deletions
diff --git a/lib/python2.7/test/test_modulefinder.py b/lib/python2.7/test/test_modulefinder.py
deleted file mode 100644
index e71d1e0..0000000
--- a/lib/python2.7/test/test_modulefinder.py
+++ /dev/null
@@ -1,286 +0,0 @@
-import __future__
-import os
-import unittest
-import distutils.dir_util
-import tempfile
-
-from test import test_support
-
-try: set
-except NameError: from sets import Set as set
-
-import modulefinder
-
-# Note: To test modulefinder with Python 2.2, sets.py and
-# modulefinder.py must be available - they are not in the standard
-# library.
-
-TEST_DIR = tempfile.mkdtemp()
-TEST_PATH = [TEST_DIR, os.path.dirname(__future__.__file__)]
-
-# Each test description is a list of 5 items:
-#
-# 1. a module name that will be imported by modulefinder
-# 2. a list of module names that modulefinder is required to find
-# 3. a list of module names that modulefinder should complain
-# about because they are not found
-# 4. a list of module names that modulefinder should complain
-# about because they MAY be not found
-# 5. a string specifying packages to create; the format is obvious imo.
-#
-# Each package will be created in TEST_DIR, and TEST_DIR will be
-# removed after the tests again.
-# Modulefinder searches in a path that contains TEST_DIR, plus
-# the standard Lib directory.
-
-maybe_test = [
- "a.module",
- ["a", "a.module", "sys",
- "b"],
- ["c"], ["b.something"],
- """\
-a/__init__.py
-a/module.py
- from b import something
- from c import something
-b/__init__.py
- from sys import *
-"""]
-
-maybe_test_new = [
- "a.module",
- ["a", "a.module", "sys",
- "b", "__future__"],
- ["c"], ["b.something"],
- """\
-a/__init__.py
-a/module.py
- from b import something
- from c import something
-b/__init__.py
- from __future__ import absolute_import
- from sys import *
-"""]
-
-package_test = [
- "a.module",
- ["a", "a.b", "a.c", "a.module", "mymodule", "sys"],
- ["blahblah"], [],
- """\
-mymodule.py
-a/__init__.py
- import blahblah
- from a import b
- import c
-a/module.py
- import sys
- from a import b as x
- from a.c import sillyname
-a/b.py
-a/c.py
- from a.module import x
- import mymodule as sillyname
- from sys import version_info
-"""]
-
-absolute_import_test = [
- "a.module",
- ["a", "a.module",
- "b", "b.x", "b.y", "b.z",
- "__future__", "sys", "exceptions"],
- ["blahblah"], [],
- """\
-mymodule.py
-a/__init__.py
-a/module.py
- from __future__ import absolute_import
- import sys # sys
- import blahblah # fails
- import exceptions # exceptions
- import b.x # b.x
- from b import y # b.y
- from b.z import * # b.z.*
-a/exceptions.py
-a/sys.py
- import mymodule
-a/b/__init__.py
-a/b/x.py
-a/b/y.py
-a/b/z.py
-b/__init__.py
- import z
-b/unused.py
-b/x.py
-b/y.py
-b/z.py
-"""]
-
-relative_import_test = [
- "a.module",
- ["__future__",
- "a", "a.module",
- "a.b", "a.b.y", "a.b.z",
- "a.b.c", "a.b.c.moduleC",
- "a.b.c.d", "a.b.c.e",
- "a.b.x",
- "exceptions"],
- [], [],
- """\
-mymodule.py
-a/__init__.py
- from .b import y, z # a.b.y, a.b.z
-a/module.py
- from __future__ import absolute_import # __future__
- import exceptions # exceptions
-a/exceptions.py
-a/sys.py
-a/b/__init__.py
- from ..b import x # a.b.x
- #from a.b.c import moduleC
- from .c import moduleC # a.b.moduleC
-a/b/x.py
-a/b/y.py
-a/b/z.py
-a/b/g.py
-a/b/c/__init__.py
- from ..c import e # a.b.c.e
-a/b/c/moduleC.py
- from ..c import d # a.b.c.d
-a/b/c/d.py
-a/b/c/e.py
-a/b/c/x.py
-"""]
-
-relative_import_test_2 = [
- "a.module",
- ["a", "a.module",
- "a.sys",
- "a.b", "a.b.y", "a.b.z",
- "a.b.c", "a.b.c.d",
- "a.b.c.e",
- "a.b.c.moduleC",
- "a.b.c.f",
- "a.b.x",
- "a.another"],
- [], [],
- """\
-mymodule.py
-a/__init__.py
- from . import sys # a.sys
-a/another.py
-a/module.py
- from .b import y, z # a.b.y, a.b.z
-a/exceptions.py
-a/sys.py
-a/b/__init__.py
- from .c import moduleC # a.b.c.moduleC
- from .c import d # a.b.c.d
-a/b/x.py
-a/b/y.py
-a/b/z.py
-a/b/c/__init__.py
- from . import e # a.b.c.e
-a/b/c/moduleC.py
- #
- from . import f # a.b.c.f
- from .. import x # a.b.x
- from ... import another # a.another
-a/b/c/d.py
-a/b/c/e.py
-a/b/c/f.py
-"""]
-
-relative_import_test_3 = [
- "a.module",
- ["a", "a.module"],
- ["a.bar"],
- [],
- """\
-a/__init__.py
- def foo(): pass
-a/module.py
- from . import foo
- from . import bar
-"""]
-
-def open_file(path):
- ##print "#", os.path.abspath(path)
- dirname = os.path.dirname(path)
- distutils.dir_util.mkpath(dirname)
- return open(path, "w")
-
-def create_package(source):
- ofi = None
- try:
- for line in source.splitlines():
- if line.startswith(" ") or line.startswith("\t"):
- ofi.write(line.strip() + "\n")
- else:
- if ofi:
- ofi.close()
- ofi = open_file(os.path.join(TEST_DIR, line.strip()))
- finally:
- if ofi:
- ofi.close()
-
-class ModuleFinderTest(unittest.TestCase):
- def _do_test(self, info, report=False):
- import_this, modules, missing, maybe_missing, source = info
- create_package(source)
- try:
- mf = modulefinder.ModuleFinder(path=TEST_PATH)
- mf.import_hook(import_this)
- if report:
- mf.report()
-## # This wouldn't work in general when executed several times:
-## opath = sys.path[:]
-## sys.path = TEST_PATH
-## try:
-## __import__(import_this)
-## except:
-## import traceback; traceback.print_exc()
-## sys.path = opath
-## return
- modules = set(modules)
- found = set(mf.modules.keys())
- more = list(found - modules)
- less = list(modules - found)
- # check if we found what we expected, not more, not less
- self.assertEqual((more, less), ([], []))
-
- # check for missing and maybe missing modules
- bad, maybe = mf.any_missing_maybe()
- self.assertEqual(bad, missing)
- self.assertEqual(maybe, maybe_missing)
- finally:
- distutils.dir_util.remove_tree(TEST_DIR)
-
- def test_package(self):
- self._do_test(package_test)
-
- def test_maybe(self):
- self._do_test(maybe_test)
-
- if getattr(__future__, "absolute_import", None):
-
- def test_maybe_new(self):
- self._do_test(maybe_test_new)
-
- def test_absolute_imports(self):
- self._do_test(absolute_import_test)
-
- def test_relative_imports(self):
- self._do_test(relative_import_test)
-
- def test_relative_imports_2(self):
- self._do_test(relative_import_test_2)
-
- def test_relative_imports_3(self):
- self._do_test(relative_import_test_3)
-
-def test_main():
- distutils.log.set_threshold(distutils.log.WARN)
- test_support.run_unittest(ModuleFinderTest)
-
-if __name__ == "__main__":
- unittest.main()