mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #25663: Merge rlcompleter fix from 3.4 into 3.5
This commit is contained in:
commit
11bb1ad155
3 changed files with 29 additions and 2 deletions
|
@ -85,5 +85,26 @@ class TestRlcompleter(unittest.TestCase):
|
|||
self.assertEqual(completer.complete('as', 2), 'assert')
|
||||
self.assertEqual(completer.complete('an', 0), 'and')
|
||||
|
||||
def test_duplicate_globals(self):
|
||||
namespace = {
|
||||
'False': None, # Keyword vs builtin vs namespace
|
||||
'assert': None, # Keyword vs namespace
|
||||
'try': lambda: None, # Keyword vs callable
|
||||
'memoryview': None, # Callable builtin vs non-callable
|
||||
'Ellipsis': lambda: None, # Non-callable builtin vs callable
|
||||
}
|
||||
completer = rlcompleter.Completer(namespace)
|
||||
self.assertEqual(completer.complete('False', 0), 'False')
|
||||
self.assertIsNone(completer.complete('False', 1)) # No duplicates
|
||||
self.assertEqual(completer.complete('assert', 0), 'assert')
|
||||
self.assertIsNone(completer.complete('assert', 1))
|
||||
self.assertEqual(completer.complete('try', 0), 'try')
|
||||
self.assertIsNone(completer.complete('try', 1))
|
||||
# No opening bracket "(" because we overrode the built-in class
|
||||
self.assertEqual(completer.complete('memoryview', 0), 'memoryview')
|
||||
self.assertIsNone(completer.complete('memoryview', 1))
|
||||
self.assertEqual(completer.complete('Ellipsis', 0), 'Ellipsis(')
|
||||
self.assertIsNone(completer.complete('Ellipsis', 1))
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue