diff options
author | Thomas Wouters <thomas@python.org> | 2006-04-27 23:13:20 +0000 |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2006-04-27 23:13:20 +0000 |
commit | 9df4e6f6735af274813cf1b611ee1a342955ad63 (patch) | |
tree | c0ab6329dd61fc03a46932435828210b3d0d3db8 /Lib/test | |
parent | 2c1e63f8a48bf0f530a922219e85443c4e12882d (diff) | |
download | cpython-git-9df4e6f6735af274813cf1b611ee1a342955ad63.tar.gz |
- Add new Warning class, ImportWarning
- Warn-raise ImportWarning when importing would have picked up a directory
as package, if only it'd had an __init__.py. This swaps two tests (for
case-ness and __init__-ness), but case-test is not really more expensive,
and it's not in a speed-critical section.
- Test for the new warning by importing a common non-package directory on
sys.path: site-packages
- In regrtest.py, silence warnings generated by the build-environment
because Modules/ (which is added to sys.path for Setup-created modules)
has 'zlib' and '_ctypes' directories without __init__.py's.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/exception_hierarchy.txt | 1 | ||||
-rwxr-xr-x | Lib/test/regrtest.py | 6 | ||||
-rw-r--r-- | Lib/test/test_import.py | 17 |
3 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/exception_hierarchy.txt b/Lib/test/exception_hierarchy.txt index 9ed92d0a9f..5fff7d92b3 100644 --- a/Lib/test/exception_hierarchy.txt +++ b/Lib/test/exception_hierarchy.txt @@ -44,3 +44,4 @@ BaseException +-- UserWarning +-- FutureWarning +-- OverflowWarning [not generated by the interpreter] + +-- ImportWarning diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 7db94aaad3..be06d9dad0 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -138,6 +138,12 @@ if sys.maxint > 0x7fffffff: warnings.filterwarnings("ignore", "hex/oct constants", FutureWarning, "<string>") +# Ignore ImportWarnings that only occur in the source tree, +# (because of modules with the same name as source-directories in Modules/) +for mod in ("ctypes", "gzip", "test.test_zipimport", "test.test_zlib"): + warnings.filterwarnings(module=".*%s$" % (mod,), + action="ignore", category=ImportWarning) + # MacOSX (a.k.a. Darwin) has a default stack size that is too small # for deeply recursive regular expressions. We see this as crashes in # the Python test suite when running test_re.py and test_sre.py. The diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py index a72b8bd072..effba3cc11 100644 --- a/Lib/test/test_import.py +++ b/Lib/test/test_import.py @@ -205,3 +205,20 @@ def test_import_name_binding(): assert y is test.test_support, y.__name__ test_import_name_binding() + +def test_import_initless_directory_warning(): + import warnings + oldfilters = warnings.filters[:] + warnings.simplefilter('error', ImportWarning); + try: + # Just a random non-package directory we always expect to be + # somewhere in sys.path... + __import__("site-packages") + except ImportWarning: + pass + else: + raise AssertionError + finally: + warnings.filters = oldfilters + +test_import_initless_directory_warning() |