[Python-checkins] r52682 - sandbox/trunk/import_in_py/test_importer.py
brett.cannon
python-checkins at python.org
Wed Nov 8 22:36:57 CET 2006
Author: brett.cannon
Date: Wed Nov 8 22:36:56 2006
New Revision: 52682
Modified:
sandbox/trunk/import_in_py/test_importer.py
Log:
Add tests to verify that importing a sub-package and a module within a
sub-package works properly.
Modified: sandbox/trunk/import_in_py/test_importer.py
==============================================================================
--- sandbox/trunk/import_in_py/test_importer.py (original)
+++ sandbox/trunk/import_in_py/test_importer.py Wed Nov 8 22:36:56 2006
@@ -204,7 +204,11 @@
else:
self.pkg_name = '_test_pkg'
self.pkg_path = os.path.join(self.directory, self.pkg_name)
- os.mkdir(self.pkg_path)
+ try:
+ os.mkdir(self.pkg_path)
+ except OSError:
+ self.tearDown()
+ os.mkdir(self.pkg_path)
self.pkg_init_path = os.path.join(self.pkg_path,
'__init__'+self.py_ext)
with open(self.pkg_init_path, 'w') as pkg_file:
@@ -214,6 +218,20 @@
self.module_name+self.py_ext)
with open(self.pkg_module_path, 'w') as module_file:
module_file.write(self.source)
+ self.sub_pkg_tail_name = 'sub_pkg'
+ self.sub_pkg_name = '.'.join([self.pkg_name, self.sub_pkg_tail_name])
+ self.sub_pkg_path = os.path.join(self.pkg_path, self.sub_pkg_tail_name)
+ os.mkdir(self.sub_pkg_path)
+ self.sub_pkg_init_path = os.path.join(self.sub_pkg_path,
+ '__init__'+self.py_ext)
+ with open(self.sub_pkg_init_path, 'w') as subpkg_file:
+ subpkg_file.write(self.source)
+ self.sub_pkg_module_name = '.'.join([self.sub_pkg_name,
+ self.module_name])
+ self.sub_pkg_module_path = os.path.join(self.sub_pkg_path,
+ self.module_name+self.py_ext)
+ with open(self.sub_pkg_module_path, 'w') as submodule_file:
+ submodule_file.write(self.source)
def remove_files(self):
TestPyPycFiles.remove_files(self)
@@ -226,11 +244,28 @@
if module.__name__ == self.pkg_name:
self.failUnlessEqual(module.__file__, self.pkg_init_path)
self.failUnlessEqual(module.__path__, [self.pkg_path])
+ # Module in top-level package.
if actual_name and self.pkg_module_name in actual_name:
self.failUnless(hasattr(module, self.module_name))
sub_module = getattr(module, self.module_name)
self.failUnlessEqual(sub_module.__name__, self.pkg_module_name)
+ self.failUnlessEqual(sub_module.__file__, self.pkg_module_path)
self.verify_module(sub_module)
+ # Package within top-level package.
+ if actual_name and self.sub_pkg_name in actual_name:
+ self.failUnless(hasattr(module, self.sub_pkg_tail_name))
+ sub_pkg = getattr(module, self.sub_pkg_tail_name)
+ self.failUnlessEqual(sub_pkg.__name__, self.sub_pkg_name)
+ self.failUnlessEqual(sub_pkg.__file__, self.sub_pkg_init_path)
+ self.verify_module(sub_pkg)
+ if actual_name == self.sub_pkg_module_name:
+ self.failUnless(hasattr(sub_pkg, self.module_name))
+ sub_module = getattr(sub_pkg, self.module_name)
+ self.failUnlessEqual(sub_module.__name__,
+ self.sub_pkg_module_name)
+ self.failUnlessEqual(sub_module.__file__,
+ self.sub_pkg_module_path)
+ self.verify_module(sub_module)
if module.__name__ == self.pkg_module_name:
self.failUnlessEqual(module.__file__, self.pkg_module_path)
@@ -933,6 +968,16 @@
module = self.import_(self.pkg_module_name)
self.verify_package(module, self.pkg_module_name)
+ def test_sub_package(self):
+ # A package within a package should work.
+ module = self.import_(self.sub_pkg_name)
+ self.verify_package(module, self.sub_pkg_name)
+
+ def test_sub_package_module(self):
+ # A module contained within a sub-package should work.
+ module = self.import_(self.sub_pkg_module_name)
+ self.verify_package(module, self.sub_pkg_module_name)
+
def test_main():
test_classes = [cls for cls in globals().itervalues()
More information about the Python-checkins
mailing list