gh-84805: Autogenerate signature for METH_NOARGS and METH_O extension functions (GH-107794)

This commit is contained in:
Serhiy Storchaka 2023-08-11 18:08:38 +03:00 committed by GitHub
parent 23a6db98f2
commit 3901c991e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 227 additions and 17 deletions

View file

@ -1,3 +1,4 @@
import datetime
import os
import sys
import contextlib
@ -12,6 +13,7 @@ import re
import stat
import tempfile
import test.support
import time
import types
import typing
import unittest
@ -1180,6 +1182,54 @@ class TestDescriptions(unittest.TestCase):
self.assertEqual(self._get_summary_line(os.stat),
"stat(path, *, dir_fd=None, follow_symlinks=True)")
def test_module_level_callable_noargs(self):
self.assertEqual(self._get_summary_line(time.time),
"time()")
def test_module_level_callable_o(self):
self.assertEqual(self._get_summary_line(stat.S_IMODE),
"S_IMODE(object, /)")
def test_unbound_builtin_method_noargs(self):
self.assertEqual(self._get_summary_line(str.lower),
"lower(self, /)")
def test_bound_builtin_method_noargs(self):
self.assertEqual(self._get_summary_line(''.lower),
"lower() method of builtins.str instance")
def test_unbound_builtin_method_o(self):
self.assertEqual(self._get_summary_line(set.add),
"add(self, object, /)")
def test_bound_builtin_method_o(self):
self.assertEqual(self._get_summary_line(set().add),
"add(object, /) method of builtins.set instance")
def test_unbound_builtin_method_coexist_o(self):
self.assertEqual(self._get_summary_line(set.__contains__),
"__contains__(self, object, /)")
def test_bound_builtin_method_coexist_o(self):
self.assertEqual(self._get_summary_line(set().__contains__),
"__contains__(object, /) method of builtins.set instance")
def test_unbound_builtin_classmethod_noargs(self):
self.assertEqual(self._get_summary_line(datetime.datetime.__dict__['utcnow']),
"utcnow(type, /)")
def test_bound_builtin_classmethod_noargs(self):
self.assertEqual(self._get_summary_line(datetime.datetime.utcnow),
"utcnow() method of builtins.type instance")
def test_unbound_builtin_classmethod_o(self):
self.assertEqual(self._get_summary_line(dict.__dict__['__class_getitem__']),
"__class_getitem__(type, object, /)")
def test_bound_builtin_classmethod_o(self):
self.assertEqual(self._get_summary_line(dict.__class_getitem__),
"__class_getitem__(object, /) method of builtins.type instance")
@requires_docstrings
def test_staticmethod(self):
class X: