[Python-checkins] r53037 - sandbox/trunk/import_in_py/importer.py sandbox/trunk/import_in_py/test_importer.py

brett.cannon python-checkins at python.org
Fri Dec 15 01:49:36 CET 2006


Author: brett.cannon
Date: Fri Dec 15 01:49:35 2006
New Revision: 53037
Modified:
 sandbox/trunk/import_in_py/importer.py
 sandbox/trunk/import_in_py/test_importer.py
Log:
Some doc cleanup.
Modified: sandbox/trunk/import_in_py/importer.py
==============================================================================
--- sandbox/trunk/import_in_py/importer.py	(original)
+++ sandbox/trunk/import_in_py/importer.py	Fri Dec 15 01:49:35 2006
@@ -26,9 +26,9 @@
 * runpy ('-m' command-line option for Python) does not work.
 + Requires get_code to be implemented for loaders.
 + Uses pkgutil.get_loader which fakes a loader if __loader__ is not defined.
- + New loaders do define __loader__ but not get_code, and thus dies on and
+ + New loaders do define __loader__ but not get_code, and thus dies on an
 AttributeError.
- + Fix
+ + Possible fix
 - Implement optional interface for loaders.
 * warnings and stack level.
 + Affected tests
@@ -39,7 +39,7 @@
 + Because import now in Python, import does show up in the call stack.
 + Trick of specifying that going back two levels will cause the warning
 to be raised in the caller for an import statement no longer holds true.
- + Fixes
+ + Possible fixes
 - Special module deprecation function.
 - Code in warnings.warn to handle import case.
 - Flag on warnings.warn that warning is for an import and ignore stack
@@ -48,6 +48,7 @@
 * test_pkg
 + Old-style test that compares output.
 + Setting of __loader__ leads to different output.
+* PEP 235 not implemented.
 
 """
 from __future__ import with_statement
@@ -105,9 +106,8 @@
 
 """Base class for meta_path importers for built-in and frozen modules.
 
- Subclasses must provide the _find and _load methods. Both expect only the
- name of the modules to import. The methods are expected to be defined on
- the subclass itself and not on an instance.
+ Subclasses must provide the _find and _load methods. The methods are
+ expected to be defined on the subclass itself and not on an instance.
 
 """
 
@@ -378,6 +378,7 @@
 is the idea of opaque code objects which are not directly touched by
 the handler but are passed back to the loader so as to allow for a way
 to keep state for the loader:
+ 
 * split_path(path)
 Take in an opaque path object and split it into a base path and a
 string representing the type of the path (which should be in the
@@ -404,7 +405,7 @@
 module = self.new_module(mod_name)
 sys.modules[mod_name] = module
 # __file__, __path__, and __loader__ *must* be set on the module before
- # any code is executed by the import.
+ # any code is executed by the import. __name__ is set by new_module.
 module.__loader__ = loader
 module.__file__ = path
 if package is not None:
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	Fri Dec 15 01:49:35 2006
@@ -1,4 +1,3 @@
-from __future__ import with_statement
 import importer
 
 import unittest
@@ -610,7 +609,28 @@
 
 class PyPycHandlerHandleCodeTests(unittest.TestCase):
 
- """Test PyPycHandler.handle_code()."""
+ """Test PyPycHandler.handle_code().
+ 
+ Various situations that must be handled (and thus tested):
+ * Valid .pyc
+ + .py exists [test_good_pyc_w_py]
+ + No .py .
+ * Invalid .pyc
+ + Reasons it is invalid
+ - Bad magic number.
+ * With .py [test_bad_magic_w_py]
+ * Without .py [test_bad_magic_no_py]
+ - .pyc stale based on timestamp.
+ * Requires .py [test_bad_timestamp_w_py]
+ - Bytecode is malformed.
+ * With .py [test_bad_bytecode_w_py]
+ * Without .py [test_bad_bytecode_no_py]
+ * No .pyc
+ + Valid .py
+ - Regenerate .pyc [test_py_w_pyc]
+ - Do not create .pyc [test_py_no_pyc]
+ 
+ """
 
 def test_good_pyc_w_py(self):
 # Test using a .pyc file that is valid and a .py file exists.
@@ -1223,6 +1243,19 @@
 * The proper module was returned.
 * All expected modules were added to sys.modules.
 * All modules imported by the call have the proper attributes.
+ 
+ There are currently no tests for the import lock.
+ 
+ Need to test (both relative and absolute imports as needed):
+ * import module
+ * import package
+ * import package.module
+ * from module import attribute
+ * from package import module
+ * from package import attribute
+ * from package.module import attribute
+ * from package import *
+ + With __all__
 
 """
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /