diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-09-27 10:43:50 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-09-27 10:43:50 (GMT) |
commit | ab824222d1356ce731f18e9d585d58d84a64637d (patch) | |
tree | f03cef8249baef6d39b3c1207bc2c39ee4f21119 /Lib/test/test_rlcompleter.py | |
parent | 8ace8e99b375f978111b62f2cc976ce4f55ecd6b (diff) | |
download | cpython-ab824222d1356ce731f18e9d585d58d84a64637d.zip cpython-ab824222d1356ce731f18e9d585d58d84a64637d.tar.gz cpython-ab824222d1356ce731f18e9d585d58d84a64637d.tar.bz2 |
Issue #25011: rlcomplete now omits private and special attribute names unless
the prefix starts with underscores.
Diffstat (limited to 'Lib/test/test_rlcompleter.py')
-rw-r--r-- | Lib/test/test_rlcompleter.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_rlcompleter.py b/Lib/test/test_rlcompleter.py index 11a8305..2ff0788 100644 --- a/Lib/test/test_rlcompleter.py +++ b/Lib/test/test_rlcompleter.py @@ -5,6 +5,7 @@ import rlcompleter class CompleteMe: """ Trivial class used in testing rlcompleter.Completer. """ spam = 1 + _ham = 2 class TestRlcompleter(unittest.TestCase): @@ -51,11 +52,25 @@ 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 != '__doc__' else '') + for x in dir(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) # test with a customized namespace self.assertEqual(self.completer.attr_matches('CompleteMe.sp'), ['CompleteMe.spam']) self.assertEqual(self.completer.attr_matches('Completeme.egg'), []) + self.assertEqual(self.completer.attr_matches('CompleteMe.'), + ['CompleteMe.mro(', 'CompleteMe.spam']) + self.assertEqual(self.completer.attr_matches('CompleteMe._'), + ['CompleteMe._ham']) + matches = self.completer.attr_matches('CompleteMe.__') + for x in matches: + self.assertTrue(x.startswith('CompleteMe.__'), x) + self.assertIn('CompleteMe.__name__', matches) + self.assertIn('CompleteMe.__new__(', matches) CompleteMe.me = CompleteMe self.assertEqual(self.completer.attr_matches('CompleteMe.me.me.sp'), |