]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106368: Argument Clinic: Add tests for cloned functions with custom C base names...
authorErlend E. Aasland <erlend@python.org>
Tue, 15 Aug 2023 20:45:53 +0000 (22:45 +0200)
committerGitHub <noreply@github.com>
Tue, 15 Aug 2023 20:45:53 +0000 (14:45 -0600)
Lib/test/test_clinic.py

index 896730571d815226dd934ac1d971b2bf551b09c3..76729c8c3e4f791792b2501bb5682052ed43d1c4 100644 (file)
@@ -653,6 +653,37 @@ class ClinicWholeFileTest(TestCase):
         err = "No C basename provided after 'as' keyword"
         self.expect_failure(block, err, lineno=5)
 
+    def test_cloned_with_custom_c_basename(self):
+        raw = dedent("""
+            /*[clinic input]
+            # Make sure we don't create spurious clinic/ directories.
+            output everything suppress
+            foo2
+            [clinic start generated code]*/
+
+            /*[clinic input]
+            foo as foo1 = foo2
+            [clinic start generated code]*/
+        """)
+        self.clinic.parse(raw)
+        funcs = self.clinic.functions
+        self.assertEqual(len(funcs), 2)
+        self.assertEqual(funcs[1].name, "foo")
+        self.assertEqual(funcs[1].c_basename, "foo1")
+
+    def test_cloned_with_illegal_c_basename(self):
+        block = """
+            /*[clinic input]
+            class C "void *" ""
+            foo1
+            [clinic start generated code]*/
+
+            /*[clinic input]
+            foo2 as .illegal. = foo1
+            [clinic start generated code]*/
+        """
+        err = "Illegal C basename: '.illegal. = foo1'"
+        self.expect_failure(block, err, lineno=7)
 
 
 class ParseFileUnitTest(TestCase):