bpo-33237: Improve AttributeError message for partially initialized module. (GH-6398)

This commit is contained in:
Serhiy Storchaka 2018-10-30 13:19:51 +02:00 committed by GitHub
parent 95b6acf951
commit 3e429dcc24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 67 additions and 23 deletions

View file

@ -1271,6 +1271,19 @@ class CircularImportTests(unittest.TestCase):
except ImportError:
self.fail('circular import with binding a submodule to a name failed')
def test_crossreference1(self):
import test.test_import.data.circular_imports.use
import test.test_import.data.circular_imports.source
def test_crossreference2(self):
with self.assertRaises(AttributeError) as cm:
import test.test_import.data.circular_imports.source
errmsg = str(cm.exception)
self.assertIn('test.test_import.data.circular_imports.source', errmsg)
self.assertIn('spam', errmsg)
self.assertIn('partially initialized module', errmsg)
self.assertIn('circular import', errmsg)
if __name__ == '__main__':
# Test needs to be a package, so we can do relative imports.

View file

@ -0,0 +1,2 @@
from . import use
spam = 1

View file

@ -0,0 +1,2 @@
from . import source
source.spam