diff options
Diffstat (limited to 'testing/web-platform/tests/tools/py/testing/root/test_py_imports.py')
-rw-r--r-- | testing/web-platform/tests/tools/py/testing/root/test_py_imports.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/py/testing/root/test_py_imports.py b/testing/web-platform/tests/tools/py/testing/root/test_py_imports.py new file mode 100644 index 000000000..5f5954e99 --- /dev/null +++ b/testing/web-platform/tests/tools/py/testing/root/test_py_imports.py @@ -0,0 +1,68 @@ +import py +import types +import sys + +def checksubpackage(name): + obj = getattr(py, name) + if hasattr(obj, '__map__'): # isinstance(obj, Module): + keys = dir(obj) + assert len(keys) > 0 + print (obj.__map__) + for name in list(obj.__map__): + assert hasattr(obj, name), (obj, name) + +def test_dir(): + for name in dir(py): + if not name.startswith('_'): + yield checksubpackage, name + +def test_virtual_module_identity(): + from py import path as path1 + from py import path as path2 + assert path1 is path2 + from py.path import local as local1 + from py.path import local as local2 + assert local1 is local2 + +def test_importall(): + base = py._pydir + nodirs = [ + ] + if sys.version_info >= (3,0): + nodirs.append(base.join('_code', '_assertionold.py')) + else: + nodirs.append(base.join('_code', '_assertionnew.py')) + + def recurse(p): + return p.check(dotfile=0) and p.basename != "attic" + + for p in base.visit('*.py', recurse): + if p.basename == '__init__.py': + continue + relpath = p.new(ext='').relto(base) + if base.sep in relpath: # not py/*.py itself + for x in nodirs: + if p == x or p.relto(x): + break + else: + relpath = relpath.replace(base.sep, '.') + modpath = 'py.%s' % relpath + try: + check_import(modpath) + except py.test.skip.Exception: + pass + +def check_import(modpath): + py.builtin.print_("checking import", modpath) + assert __import__(modpath) + +def test_all_resolves(): + seen = py.builtin.set([py]) + lastlength = None + while len(seen) != lastlength: + lastlength = len(seen) + for item in py.builtin.frozenset(seen): + for value in item.__dict__.values(): + if isinstance(value, type(py.test)): + seen.add(value) + |