@@ -2558,6 +2558,26 @@ def test_basic_unused(self):
25582558
25592559 self .assertFalse ("test.test_import.data.lazy_imports.basic2" in sys .modules )
25602560
2561+ def test_basic_unused_use_externally (self ):
2562+ try :
2563+ from test .test_import .data .lazy_imports import basic_unused
2564+ except ImportError as e :
2565+ self .fail ('lazy import failed' )
2566+
2567+ self .assertFalse ("test.test_import.data.lazy_imports.basic2" in sys .modules )
2568+ x = basic_unused .test .test_import .data .lazy_imports .basic2
2569+ self .assertTrue ("test.test_import.data.lazy_imports.basic2" in sys .modules )
2570+
2571+ def test_basic_from_unused_use_externally (self ):
2572+ try :
2573+ from test .test_import .data .lazy_imports import basic_from_unused
2574+ except ImportError as e :
2575+ self .fail ('lazy import failed' )
2576+
2577+ self .assertFalse ("test.test_import.data.lazy_imports.basic2" in sys .modules )
2578+ x = basic_from_unused .basic2
2579+ self .assertTrue ("test.test_import.data.lazy_imports.basic2" in sys .modules )
2580+
25612581 def test_basic_unused_dir (self ):
25622582 try :
25632583 import test .test_import .data .lazy_imports .basic_unused
@@ -2758,6 +2778,19 @@ def test_lazy_import_pkg(self):
27582778 self .assertTrue ("test.test_import.data.lazy_imports.pkg" in sys .modules )
27592779 self .assertTrue ("test.test_import.data.lazy_imports.pkg.bar" in sys .modules )
27602780
2781+ def test_lazy_import_pkg_cross_import (self ):
2782+ try :
2783+ import test .test_import .data .lazy_imports .pkg .c
2784+ except ImportError as e :
2785+ self .fail ('lazy import failed' )
2786+
2787+ self .assertTrue ("test.test_import.data.lazy_imports.pkg" in sys .modules )
2788+ self .assertTrue ("test.test_import.data.lazy_imports.pkg.c" in sys .modules )
2789+ self .assertFalse ("test.test_import.data.lazy_imports.pkg.b" in sys .modules )
2790+
2791+ g = test .test_import .data .lazy_imports .pkg .c .get_globals ()
2792+ self .assertEqual (type (g ["x" ]), int )
2793+ self .assertEqual (type (g ["b" ]), importlib .lazy_import )
27612794
27622795class TestSinglePhaseSnapshot (ModuleSnapshot ):
27632796 """A representation of a single-phase init module for testing.
0 commit comments