]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-133210: Fix `test_rlcompleter` in `--without-doc-strings` mode (#133332)
authorsobolevn <mail@sobolevn.me>
Sat, 3 May 2025 15:38:27 +0000 (18:38 +0300)
committerGitHub <noreply@github.com>
Sat, 3 May 2025 15:38:27 +0000 (18:38 +0300)
Lib/test/test_rlcompleter.py

index 1cff6a218f8d756ea4dd113d38e11304e0c814a8..d403a0fe96be3dcbf16d8253aac6ee8501ec89ed 100644 (file)
@@ -54,11 +54,26 @@ class TestRlcompleter(unittest.TestCase):
                          ['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)