['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)