@@ -557,7 +557,7 @@ def setUp(self):
557557 self .id = _interpreters .create ()
558558
559559 def test_signatures (self ):
560- # for method in ['exec', 'run_string', 'run_func']:
560+ # See https://github.com/python/cpython/issues/126654
561561 msg = "expected 'shared' to be a dict"
562562 with self .assertRaisesRegex (TypeError , msg ):
563563 _interpreters .exec (self .id , 'a' , 1 )
@@ -568,6 +568,17 @@ def test_signatures(self):
568568 with self .assertRaisesRegex (TypeError , msg ):
569569 _interpreters .run_func (self .id , lambda : None , shared = 1 )
570570
571+ def test_invalid_shared_encoding (self ):
572+ # See https://github.com/python/cpython/issues/127196
573+ bad_shared = {"\uD82A " : 0 }
574+ msg = 'surrogates not allowed'
575+ with self .assertRaisesRegex (UnicodeEncodeError , msg ):
576+ _interpreters .exec (self .id , 'a' , shared = bad_shared )
577+ with self .assertRaisesRegex (UnicodeEncodeError , msg ):
578+ _interpreters .run_string (self .id , 'a' , shared = bad_shared )
579+ with self .assertRaisesRegex (UnicodeEncodeError , msg ):
580+ _interpreters .run_func (self .id , lambda : None , shared = bad_shared )
581+
571582
572583class RunStringTests (TestBase ):
573584
0 commit comments