@@ -1088,6 +1088,49 @@ def test_env_var_lazy_imports_none_disables_all_lazy(self):
10881088 self .assertEqual (result .returncode , 0 , f"stderr: { result .stderr } " )
10891089 self .assertIn ("EAGER" , result .stdout )
10901090
1091+ def test_cli_lazy_imports_none_disables_dunder_lazy_modules (self ):
1092+ """-X lazy_imports=none should override __lazy_modules__."""
1093+ code = textwrap .dedent ("""
1094+ import sys
1095+ __lazy_modules__ = ["json"]
1096+ import json
1097+ if 'json' in sys.modules:
1098+ print("EAGER")
1099+ else:
1100+ print("LAZY")
1101+ """ )
1102+ result = subprocess .run (
1103+ [sys .executable , "-X" , "lazy_imports=none" , "-c" , code ],
1104+ capture_output = True ,
1105+ text = True ,
1106+ )
1107+ self .assertEqual (result .returncode , 0 , f"stderr: { result .stderr } " )
1108+ self .assertIn ("EAGER" , result .stdout )
1109+
1110+ def test_env_var_lazy_imports_none_disables_dunder_lazy_modules (self ):
1111+ """PYTHON_LAZY_IMPORTS=none should override __lazy_modules__."""
1112+ code = textwrap .dedent ("""
1113+ import sys
1114+ __lazy_modules__ = ["json"]
1115+ import json
1116+ if 'json' in sys.modules:
1117+ print("EAGER")
1118+ else:
1119+ print("LAZY")
1120+ """ )
1121+ import os
1122+
1123+ env = os .environ .copy ()
1124+ env ["PYTHON_LAZY_IMPORTS" ] = "none"
1125+ result = subprocess .run (
1126+ [sys .executable , "-c" , code ],
1127+ capture_output = True ,
1128+ text = True ,
1129+ env = env ,
1130+ )
1131+ self .assertEqual (result .returncode , 0 , f"stderr: { result .stderr } " )
1132+ self .assertIn ("EAGER" , result .stdout )
1133+
10911134 def test_cli_overrides_env_var (self ):
10921135 """Command-line option should take precedence over environment variable."""
10931136 # PEP 810: -X lazy_imports takes precedence over PYTHON_LAZY_IMPORTS
0 commit comments