@@ -1034,6 +1034,50 @@ def test_cli_lazy_imports_none_forces_all_imports_eager(self):
10341034 self .assertEqual (result .returncode , 0 , f"stderr: { result .stderr } " )
10351035 self .assertIn ("EAGER" , result .stdout )
10361036
1037+ @support .requires_resource ("cpu" )
1038+ def test_cli_lazy_imports_modes_import_stdlib_modules (self ):
1039+ """-X lazy_imports modes should import available stdlib modules."""
1040+ # Do not smoke-test modules with intentional import-time effects.
1041+ import_side_effect_modules = {"antigravity" , "this" }
1042+ importable = []
1043+
1044+ for module in sorted (sys .stdlib_module_names ):
1045+ if module in import_side_effect_modules :
1046+ continue
1047+
1048+ with self .subTest (module = module ):
1049+ code = f"import { module } ; print({ module } )"
1050+ baseline = subprocess .run (
1051+ [sys .executable , "-I" , "-c" , code ],
1052+ capture_output = True ,
1053+ text = True ,
1054+ timeout = 60 ,
1055+ )
1056+ if baseline .returncode :
1057+ # sys.stdlib_module_names includes modules for other
1058+ # platforms and optional extension modules not built here.
1059+ continue
1060+ importable .append (module )
1061+
1062+ for mode in ("normal" , "none" ):
1063+ with self .subTest (module = module , mode = mode ):
1064+ result = subprocess .run (
1065+ [
1066+ sys .executable ,
1067+ "-I" ,
1068+ "-X" ,
1069+ f"lazy_imports={ mode } " ,
1070+ "-c" ,
1071+ code ,
1072+ ],
1073+ capture_output = True ,
1074+ text = True ,
1075+ timeout = 60 ,
1076+ )
1077+ self .assertEqual (result .returncode , 0 , result .stderr )
1078+
1079+ self .assertGreater (len (importable ), 100 )
1080+
10371081 def test_cli_lazy_imports_normal_respects_lazy_keyword_only (self ):
10381082 """-X lazy_imports=normal should respect lazy keyword only."""
10391083 # Note: Use test modules instead of stdlib modules to avoid
0 commit comments