diff options
author | Anthony Sottile <asottile@umich.edu> | 2019-09-09 15:17:50 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@python.org> | 2019-09-09 15:17:50 (GMT) |
commit | 65366bc8bdc4716ebc361e622590b45a6e5aef07 (patch) | |
tree | 520bd77224c7ecb24bd2851f15cf91ecc3b9d924 /Lib/test/test_import | |
parent | 88b24f96aedbe546d7d3248089d94e874edc0e11 (diff) | |
download | cpython-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__.py | 10 | ||||
-rw-r--r-- | Lib/test/test_import/data/circular_imports/from_cycle1.py | 2 | ||||
-rw-r--r-- | Lib/test/test_import/data/circular_imports/from_cycle2.py | 2 |
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 |