summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_import
diff options
context:
space:
mode:
authorAnthony Sottile <asottile@umich.edu>2019-09-09 15:17:50 (GMT)
committerSteve Dower <steve.dower@python.org>2019-09-09 15:17:50 (GMT)
commit65366bc8bdc4716ebc361e622590b45a6e5aef07 (patch)
tree520bd77224c7ecb24bd2851f15cf91ecc3b9d924 /Lib/test/test_import
parent88b24f96aedbe546d7d3248089d94e874edc0e11 (diff)
downloadcpython-65366bc8bdc4716ebc361e622590b45a6e5aef07.zip
cpython-65366bc8bdc4716ebc361e622590b45a6e5aef07.tar.gz
cpython-65366bc8bdc4716ebc361e622590b45a6e5aef07.tar.bz2
bpo-20490: Improve circular import error message (GH-15308)
Diffstat (limited to 'Lib/test/test_import')
-rw-r--r--Lib/test/test_import/__init__.py10
-rw-r--r--Lib/test/test_import/data/circular_imports/from_cycle1.py2
-rw-r--r--Lib/test/test_import/data/circular_imports/from_cycle2.py2
3 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py
index 88746b4..f167c84 100644
--- a/Lib/test/test_import/__init__.py
+++ b/Lib/test/test_import/__init__.py
@@ -1324,6 +1324,16 @@ class CircularImportTests(unittest.TestCase):
self.assertIn('partially initialized module', errmsg)
self.assertIn('circular import', errmsg)
+ def test_circular_from_import(self):
+ with self.assertRaises(ImportError) as cm:
+ import test.test_import.data.circular_imports.from_cycle1
+ self.assertIn(
+ "cannot import name 'b' from partially initialized module "
+ "'test.test_import.data.circular_imports.from_cycle1' "
+ "(most likely due to a circular import)",
+ str(cm.exception),
+ )
+
if __name__ == '__main__':
# Test needs to be a package, so we can do relative imports.
diff --git a/Lib/test/test_import/data/circular_imports/from_cycle1.py b/Lib/test/test_import/data/circular_imports/from_cycle1.py
new file mode 100644
index 0000000..aacfd5f
--- /dev/null
+++ b/Lib/test/test_import/data/circular_imports/from_cycle1.py
@@ -0,0 +1,2 @@
+from .from_cycle2 import a
+b = 1
diff --git a/Lib/test/test_import/data/circular_imports/from_cycle2.py b/Lib/test/test_import/data/circular_imports/from_cycle2.py
new file mode 100644
index 0000000..62a66e1
--- /dev/null
+++ b/Lib/test/test_import/data/circular_imports/from_cycle2.py
@@ -0,0 +1,2 @@
+from .from_cycle1 import b
+a = 1