From: Erlend E. Aasland Date: Tue, 15 Aug 2023 20:45:53 +0000 (+0200) Subject: gh-106368: Argument Clinic: Add tests for cloned functions with custom C base names... X-Git-Tag: v3.13.0a1~962 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb456a08a3db851e6feaefc3328f39096919ec8d;p=thirdparty%2FPython%2Fcpython.git gh-106368: Argument Clinic: Add tests for cloned functions with custom C base names (#107977) --- diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py index 896730571d81..76729c8c3e4f 100644 --- a/Lib/test/test_clinic.py +++ b/Lib/test/test_clinic.py @@ -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):