Merge pull request #19 from DinoV/lazy_tests_dunder

This commit is contained in:
Pablo Galindo Salgado 2025-11-09 12:40:47 -05:00 committed by GitHub
commit b743eb03d8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 43 additions and 0 deletions

View file

@ -2840,6 +2840,33 @@ def test_lazy_import_pkg_cross_import(self):
self.assertEqual(type(g["x"]), int)
self.assertEqual(type(g["b"]), types.LazyImportType)
def test_dunder_lazy_import(self):
try:
import test.test_import.data.lazy_imports.dunder_lazy_import
except ImportError as e:
self.fail('lazy import failed')
self.assertFalse("test.test_import.data.lazy_imports.basic2" in sys.modules)
def test_dunder_lazy_import_used(self):
try:
import test.test_import.data.lazy_imports.dunder_lazy_import_used
except ImportError as e:
self.fail('lazy import failed')
self.assertTrue("test.test_import.data.lazy_imports.basic2" in sys.modules)
def test_dunder_lazy_import_builtins(self):
"""__lazy_import__ uses modules __builtins__ to get __import__"""
try:
from test.test_import.data.lazy_imports import dunder_lazy_import_builtins
except ImportError as e:
self.fail('lazy import failed')
self.assertFalse("test.test_import.data.lazy_imports.basic2" in sys.modules)
self.assertEqual(dunder_lazy_import_builtins.basic, 42)
class TestSinglePhaseSnapshot(ModuleSnapshot):
"""A representation of a single-phase init module for testing.

View file

@ -0,0 +1 @@
basic = __lazy_import__('test.test_import.data.lazy_imports.basic2')

View file

@ -0,0 +1,13 @@
import sys
def myimport(*args):
return sys.modules[__name__]
new_globals = dict(globals())
new_globals["__builtins__"] = {
"__import__": myimport,
}
basic2 = 42
basic = __lazy_import__("test.test_import.data.lazy_imports", fromlist="basic2", globals=new_globals)
basic

View file

@ -0,0 +1,2 @@
basic = __lazy_import__('test.test_import.data.lazy_imports', fromlist="basic2")
basic