gh-133210: Fix test_rlcompleter in --without-doc-strings mode (#133332)

This commit is contained in:
sobolevn 2025-05-03 18:38:27 +03:00 committed by GitHub
parent a85f526742
commit 881144fa58
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -54,11 +54,26 @@ def test_attr_matches(self):
['str.{}('.format(x) for x in dir(str)
if x.startswith('s')])
self.assertEqual(self.stdcompleter.attr_matches('tuple.foospamegg'), [])
expected = sorted({'None.%s%s' % (x,
'()' if x in ('__init_subclass__', '__class__')
else '' if x == '__doc__'
else '(')
for x in dir(None)})
def create_expected_for_none():
if not MISSING_C_DOCSTRINGS:
parentheses = ('__init_subclass__', '__class__')
else:
# When `--without-doc-strings` is used, `__class__`
# won't have a known signature.
parentheses = ('__init_subclass__',)
items = set()
for x in dir(None):
if x in parentheses:
items.add(f'None.{x}()')
elif x == '__doc__':
items.add(f'None.{x}')
else:
items.add(f'None.{x}(')
return sorted(items)
expected = create_expected_for_none()
self.assertEqual(self.stdcompleter.attr_matches('None.'), expected)
self.assertEqual(self.stdcompleter.attr_matches('None._'), expected)
self.assertEqual(self.stdcompleter.attr_matches('None.__'), expected)