]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-106368: Add test for Argument Clinic misbehaving custom converter_init...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 31 Jul 2023 12:32:18 +0000 (05:32 -0700)
committerGitHub <noreply@github.com>
Mon, 31 Jul 2023 12:32:18 +0000 (12:32 +0000)
(cherry picked from commit 2c5d206b33e4cdcafaaaf1eeaa189c10de332dc5)

Co-authored-by: Erlend E. Aasland <erlend@python.org>
Lib/test/test_clinic.py

index 1c01fb0ed36888a014b24b59353f417b93cc6c12..bc0eee1552e46c0ed92ee2bb7904f25e947dafe4 100644 (file)
@@ -314,6 +314,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):