gh-106368: Add test for Argument Clinic misbehaving custom converter_init() (#107496)

This commit is contained in:
Erlend E. Aasland 2023-07-31 13:50:03 +02:00 committed by GitHub
parent a1c737b73d
commit 2c5d206b33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -318,6 +318,26 @@ class ClinicWholeFileTest(_ParserBase):
msg = "unknown destination command 'nosuchcommand'"
self.assertIn(msg, out)
def test_no_access_to_members_in_converter_init(self):
out = self.expect_failure("""
/*[python input]
class Custom_converter(CConverter):
converter = "some_c_function"
def converter_init(self):
self.function.noaccess
[python start generated code]*/
/*[clinic input]
module test
test.fn
a: Custom
[clinic start generated code]*/
""")
msg = (
"Stepped on a land mine, trying to access attribute 'noaccess':\n"
"Don't access members of self.function inside converter_init!"
)
self.assertIn(msg, out)
class ClinicGroupPermuterTest(TestCase):
def _test(self, l, m, r, output):