summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_pkg.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_pkg.py')
-rw-r--r--lib/python2.7/test/test_pkg.py292
1 files changed, 0 insertions, 292 deletions
diff --git a/lib/python2.7/test/test_pkg.py b/lib/python2.7/test/test_pkg.py
deleted file mode 100644
index 5f1659b..0000000
--- a/lib/python2.7/test/test_pkg.py
+++ /dev/null
@@ -1,292 +0,0 @@
-# Test packages (dotted-name import)
-
-import sys
-import os
-import tempfile
-import textwrap
-import unittest
-from test import test_support
-
-
-# Helpers to create and destroy hierarchies.
-
-def cleanout(root):
- names = os.listdir(root)
- for name in names:
- fullname = os.path.join(root, name)
- if os.path.isdir(fullname) and not os.path.islink(fullname):
- cleanout(fullname)
- else:
- os.remove(fullname)
- os.rmdir(root)
-
-def fixdir(lst):
- if "__builtins__" in lst:
- lst.remove("__builtins__")
- return lst
-
-
-# XXX Things to test
-#
-# import package without __init__
-# import package with __init__
-# __init__ importing submodule
-# __init__ importing global module
-# __init__ defining variables
-# submodule importing other submodule
-# submodule importing global module
-# submodule import submodule via global name
-# from package import submodule
-# from package import subpackage
-# from package import variable (defined in __init__)
-# from package import * (defined in __init__)
-
-
-class Test(unittest.TestCase):
-
- def setUp(self):
- self.root = None
- self.pkgname = None
- self.syspath = list(sys.path)
-
- def tearDown(self):
- sys.path[:] = self.syspath
- if self.root: # Only clean if the test was actually run
- cleanout(self.root)
-
- # delete all modules concerning the tested hierarchy
- if self.pkgname:
- modules = [name for name in sys.modules
- if self.pkgname in name.split('.')]
- for name in modules:
- del sys.modules[name]
-
- def run_code(self, code):
- exec(textwrap.dedent(code), globals(), {"self": self})
-
- def mkhier(self, descr):
- root = tempfile.mkdtemp()
- sys.path.insert(0, root)
- if not os.path.isdir(root):
- os.mkdir(root)
- for name, contents in descr:
- comps = name.split()
- fullname = root
- for c in comps:
- fullname = os.path.join(fullname, c)
- if contents is None:
- os.mkdir(fullname)
- else:
- f = open(fullname, "w")
- f.write(contents)
- if contents and contents[-1] != '\n':
- f.write('\n')
- f.close()
- self.root = root
- # package name is the name of the first item
- self.pkgname = descr[0][0]
-
- def test_1(self):
- hier = [("t1", None), ("t1 __init__"+os.extsep+"py", "")]
- self.mkhier(hier)
- import t1
-
- def test_2(self):
- hier = [
- ("t2", None),
- ("t2 __init__"+os.extsep+"py", "'doc for t2'"),
- ("t2 sub", None),
- ("t2 sub __init__"+os.extsep+"py", ""),
- ("t2 sub subsub", None),
- ("t2 sub subsub __init__"+os.extsep+"py", "spam = 1"),
- ]
- self.mkhier(hier)
-
- import t2.sub
- import t2.sub.subsub
- self.assertEqual(t2.__name__, "t2")
- self.assertEqual(t2.sub.__name__, "t2.sub")
- self.assertEqual(t2.sub.subsub.__name__, "t2.sub.subsub")
-
- # This exec crap is needed because Py3k forbids 'import *' outside
- # of module-scope and __import__() is insufficient for what we need.
- s = """
- import t2
- from t2 import *
- self.assertEqual(dir(), ['self', 'sub', 't2'])
- """
- self.run_code(s)
-
- from t2 import sub
- from t2.sub import subsub
- from t2.sub.subsub import spam
- self.assertEqual(sub.__name__, "t2.sub")
- self.assertEqual(subsub.__name__, "t2.sub.subsub")
- self.assertEqual(sub.subsub.__name__, "t2.sub.subsub")
- for name in ['spam', 'sub', 'subsub', 't2']:
- self.assertTrue(locals()["name"], "Failed to import %s" % name)
-
- import t2.sub
- import t2.sub.subsub
- self.assertEqual(t2.__name__, "t2")
- self.assertEqual(t2.sub.__name__, "t2.sub")
- self.assertEqual(t2.sub.subsub.__name__, "t2.sub.subsub")
-
- s = """
- from t2 import *
- self.assertTrue(dir(), ['self', 'sub'])
- """
- self.run_code(s)
-
- def test_3(self):
- hier = [
- ("t3", None),
- ("t3 __init__"+os.extsep+"py", ""),
- ("t3 sub", None),
- ("t3 sub __init__"+os.extsep+"py", ""),
- ("t3 sub subsub", None),
- ("t3 sub subsub __init__"+os.extsep+"py", "spam = 1"),
- ]
- self.mkhier(hier)
-
- import t3.sub.subsub
- self.assertEqual(t3.__name__, "t3")
- self.assertEqual(t3.sub.__name__, "t3.sub")
- self.assertEqual(t3.sub.subsub.__name__, "t3.sub.subsub")
-
- def test_4(self):
- hier = [
- ("t4.py", "raise RuntimeError('Shouldnt load t4.py')"),
- ("t4", None),
- ("t4 __init__"+os.extsep+"py", ""),
- ("t4 sub.py", "raise RuntimeError('Shouldnt load sub.py')"),
- ("t4 sub", None),
- ("t4 sub __init__"+os.extsep+"py", ""),
- ("t4 sub subsub"+os.extsep+"py",
- "raise RuntimeError('Shouldnt load subsub.py')"),
- ("t4 sub subsub", None),
- ("t4 sub subsub __init__"+os.extsep+"py", "spam = 1"),
- ]
- self.mkhier(hier)
-
- s = """
- from t4.sub.subsub import *
- self.assertEqual(spam, 1)
- """
- self.run_code(s)
-
- def test_5(self):
- hier = [
- ("t5", None),
- ("t5 __init__"+os.extsep+"py", "import t5.foo"),
- ("t5 string"+os.extsep+"py", "spam = 1"),
- ("t5 foo"+os.extsep+"py",
- "from . import string; assert string.spam == 1"),
- ]
- self.mkhier(hier)
-
- import t5
- s = """
- from t5 import *
- self.assertEqual(dir(), ['foo', 'self', 'string', 't5'])
- """
- self.run_code(s)
-
- import t5
- self.assertEqual(fixdir(dir(t5)),
- ['__doc__', '__file__', '__name__',
- '__package__', '__path__', 'foo', 'string', 't5'])
- self.assertEqual(fixdir(dir(t5.foo)),
- ['__doc__', '__file__', '__name__', '__package__',
- 'string'])
- self.assertEqual(fixdir(dir(t5.string)),
- ['__doc__', '__file__', '__name__','__package__',
- 'spam'])
-
- def test_6(self):
- hier = [
- ("t6", None),
- ("t6 __init__"+os.extsep+"py",
- "__all__ = ['spam', 'ham', 'eggs']"),
- ("t6 spam"+os.extsep+"py", ""),
- ("t6 ham"+os.extsep+"py", ""),
- ("t6 eggs"+os.extsep+"py", ""),
- ]
- self.mkhier(hier)
-
- import t6
- self.assertEqual(fixdir(dir(t6)),
- ['__all__', '__doc__', '__file__',
- '__name__', '__package__', '__path__'])
- s = """
- import t6
- from t6 import *
- self.assertEqual(fixdir(dir(t6)),
- ['__all__', '__doc__', '__file__',
- '__name__', '__package__', '__path__',
- 'eggs', 'ham', 'spam'])
- self.assertEqual(dir(), ['eggs', 'ham', 'self', 'spam', 't6'])
- """
- self.run_code(s)
-
- def test_7(self):
- hier = [
- ("t7", None),
- ("t7"+os.extsep+"py", ""),
- ("t7 __init__"+os.extsep+"py", ""),
- ("t7 sub"+os.extsep+"py",
- "raise RuntimeError('Shouldnt load sub.py')"),
- ("t7 sub", None),
- ("t7 sub __init__"+os.extsep+"py", ""),
- ("t7 sub "+os.extsep+"py",
- "raise RuntimeError('Shouldnt load subsub.py')"),
- ("t7 sub subsub", None),
- ("t7 sub subsub __init__"+os.extsep+"py",
- "spam = 1"),
- ]
- self.mkhier(hier)
-
-
- t7, sub, subsub = None, None, None
- import t7 as tas
- self.assertEqual(fixdir(dir(tas)),
- ['__doc__', '__file__', '__name__',
- '__package__', '__path__'])
- self.assertFalse(t7)
- from t7 import sub as subpar
- self.assertEqual(fixdir(dir(subpar)),
- ['__doc__', '__file__', '__name__',
- '__package__', '__path__'])
- self.assertFalse(t7)
- self.assertFalse(sub)
- from t7.sub import subsub as subsubsub
- self.assertEqual(fixdir(dir(subsubsub)),
- ['__doc__', '__file__', '__name__',
- '__package__', '__path__', 'spam'])
- self.assertFalse(t7)
- self.assertFalse(sub)
- self.assertFalse(subsub)
- from t7.sub.subsub import spam as ham
- self.assertEqual(ham, 1)
- self.assertFalse(t7)
- self.assertFalse(sub)
- self.assertFalse(subsub)
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_8(self):
- hier = [
- ("t8", None),
- ("t8 __init__"+os.extsep+"py", "'doc for t8'"),
- ]
- self.mkhier(hier)
-
- import t8
- self.assertEqual(t8.__doc__, "doc for t8")
-
-def test_main():
- test_support.run_unittest(__name__)
-
-
-if __name__ == "__main__":
- test_main()