summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_importlib/import_/test___package__.py33
-rw-r--r--Lib/test/test_importlib/import_/test_relative_imports.py16
2 files changed, 34 insertions, 15 deletions
diff --git a/Lib/test/test_importlib/import_/test___package__.py b/Lib/test/test_importlib/import_/test___package__.py
index 08e41c9..ddeeaca 100644
--- a/Lib/test/test_importlib/import_/test___package__.py
+++ b/Lib/test/test_importlib/import_/test___package__.py
@@ -5,6 +5,7 @@ of using the typical __path__/__name__ test).
"""
import unittest
+import warnings
from .. import util
@@ -38,8 +39,8 @@ class Using__package__:
with util.import_state(meta_path=[importer]):
self.__import__('pkg.fake')
module = self.__import__('',
- globals=globals_,
- fromlist=['attr'], level=2)
+ globals=globals_,
+ fromlist=['attr'], level=2)
return module
def test_using___package__(self):
@@ -49,7 +50,10 @@ class Using__package__:
def test_using___name__(self):
# [__name__]
- module = self.import_module({'__name__': 'pkg.fake', '__path__': []})
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ module = self.import_module({'__name__': 'pkg.fake',
+ '__path__': []})
self.assertEqual(module.__name__, 'pkg')
def test_warn_when_using___name__(self):
@@ -58,14 +62,22 @@ class Using__package__:
def test_None_as___package__(self):
# [None]
- module = self.import_module({
- '__name__': 'pkg.fake', '__path__': [], '__package__': None })
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ module = self.import_module({
+ '__name__': 'pkg.fake', '__path__': [], '__package__': None })
self.assertEqual(module.__name__, 'pkg')
- def test_prefers___spec__(self):
- globals = {'__spec__': FakeSpec()}
- with self.assertRaises(SystemError):
- self.__import__('', globals, {}, ['relimport'], 1)
+ def test_spec_fallback(self):
+ # If __package__ isn't defined, fall back on __spec__.parent.
+ module = self.import_module({'__spec__': FakeSpec('pkg.fake')})
+ self.assertEqual(module.__name__, 'pkg')
+
+ def test_warn_when_package_and_spec_disagree(self):
+ # Raise an ImportWarning if __package__ != __spec__.parent.
+ with self.assertWarns(ImportWarning):
+ self.import_module({'__package__': 'pkg.fake',
+ '__spec__': FakeSpec('pkg.fakefake')})
def test_bad__package__(self):
globals = {'__package__': '<not real>'}
@@ -79,7 +91,8 @@ class Using__package__:
class FakeSpec:
- parent = '<fake>'
+ def __init__(self, parent):
+ self.parent = parent
class Using__package__PEP302(Using__package__):
diff --git a/Lib/test/test_importlib/import_/test_relative_imports.py b/Lib/test/test_importlib/import_/test_relative_imports.py
index 28bb6f7..0409f22 100644
--- a/Lib/test/test_importlib/import_/test_relative_imports.py
+++ b/Lib/test/test_importlib/import_/test_relative_imports.py
@@ -2,6 +2,8 @@
from .. import util
import sys
import unittest
+import warnings
+
class RelativeImports:
@@ -65,9 +67,11 @@ class RelativeImports:
uncache_names.append(name[:-len('.__init__')])
with util.mock_spec(*create) as importer:
with util.import_state(meta_path=[importer]):
- for global_ in globals_:
- with util.uncache(*uncache_names):
- callback(global_)
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ for global_ in globals_:
+ with util.uncache(*uncache_names):
+ callback(global_)
def test_module_from_module(self):
@@ -204,8 +208,10 @@ class RelativeImports:
def test_relative_import_no_globals(self):
# No globals for a relative import is an error.
- with self.assertRaises(KeyError):
- self.__import__('sys', level=1)
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ with self.assertRaises(KeyError):
+ self.__import__('sys', level=1)
(Frozen_RelativeImports,