@@ -32,6 +32,17 @@ def _kill_python_and_exit_code(p):
3232 return data , returncode
3333
3434
35+ def presite_func ():
36+ print ("presite func" )
37+
38+ class Namespace :
39+ pass
40+
41+ presite = Namespace ()
42+ presite .attr = Namespace ()
43+ presite .attr .func = presite_func
44+
45+
3546class CmdLineTest (unittest .TestCase ):
3647 def test_directories (self ):
3748 assert_python_failure ('.' )
@@ -1266,6 +1277,17 @@ def test_invalid_thread_local_bytecode(self):
12661277 rc , out , err = assert_python_failure (PYTHON_TLBC = "2" )
12671278 self .assertIn (b"PYTHON_TLBC=N: N is missing or invalid" , err )
12681279
1280+ @unittest .skipUnless (support .Py_DEBUG ,
1281+ '-X presite requires a Python debug build' )
1282+ def test_presite (self ):
1283+ entrypoint = "test.test_cmd_line:presite_func"
1284+ proc = assert_python_ok ("-X" , f"presite={ entrypoint } " )
1285+ self .assertEqual (proc .out .rstrip (), b"presite func" )
1286+
1287+ entrypoint = "test.test_cmd_line:presite.attr.func"
1288+ proc = assert_python_ok ("-X" , f"presite={ entrypoint } " )
1289+ self .assertEqual (proc .out .rstrip (), b"presite func" )
1290+
12691291
12701292@unittest .skipIf (interpreter_requires_environment (),
12711293 'Cannot run -I tests when PYTHON env vars are required.' )
0 commit comments