gh-106368: Argument Clinic: Add tests for cloned functions with custom C base names (#107977)

This commit is contained in:
Erlend E. Aasland 2023-08-15 22:45:53 +02:00 committed by GitHub
parent 99b6ce56f8
commit bb456a08a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View 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):