Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 482e66a

Browse files
committed
Issue #9496: Provide a test suite for the rlcompleter module. Patch by
Michele Orrù.
1 parent e99f507 commit 482e66a

4 files changed

Lines changed: 77 additions & 1 deletion

File tree

Lib/test/test_rlcompleter.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
from test import support
2+
import unittest
3+
import builtins
4+
import rlcompleter
5+
6+
class CompleteMe:
7+
""" Trivial class used in testing rlcompleter.Completer. """
8+
spam = 1
9+
10+
11+
class TestRlcompleter(unittest.TestCase):
12+
def setUp(self):
13+
self.stdcompleter = rlcompleter.Completer()
14+
self.completer = rlcompleter.Completer(dict(spam=int,
15+
egg=str,
16+
CompleteMe=CompleteMe))
17+
18+
# forces stdcompleter to bind builtins namespace
19+
self.stdcompleter.complete('', 0)
20+
21+
def test_namespace(self):
22+
class A(dict):
23+
pass
24+
class B(list):
25+
pass
26+
27+
self.assertTrue(self.stdcompleter.use_main_ns)
28+
self.assertFalse(self.completer.use_main_ns)
29+
self.assertFalse(rlcompleter.Completer(A()).use_main_ns)
30+
self.assertRaises(TypeError, rlcompleter.Completer, B((1,)))
31+
32+
def test_global_matches(self):
33+
# test with builtins namespace
34+
self.assertEqual(self.stdcompleter.global_matches('di'),
35+
[x+'(' for x in dir(builtins) if x.startswith('di')])
36+
self.assertEqual(self.stdcompleter.global_matches('st'),
37+
[x+'(' for x in dir(builtins) if x.startswith('st')])
38+
self.assertEqual(self.stdcompleter.global_matches('akaksajadhak'), [])
39+
40+
# test with a customized namespace
41+
self.assertEqual(self.completer.global_matches('CompleteM'),
42+
['CompleteMe('])
43+
self.assertEqual(self.completer.global_matches('eg'),
44+
['egg('])
45+
# XXX: see issue5256
46+
self.assertEqual(self.completer.global_matches('CompleteM'),
47+
['CompleteMe('])
48+
49+
def test_attr_matches(self):
50+
# test with builtins namespace
51+
self.assertEqual(self.stdcompleter.attr_matches('str.s'),
52+
['str.{}('.format(x) for x in dir(str)
53+
if x.startswith('s')])
54+
self.assertEqual(self.stdcompleter.attr_matches('tuple.foospamegg'), [])
55+
56+
# test with a customized namespace
57+
self.assertEqual(self.completer.attr_matches('CompleteMe.sp'),
58+
['CompleteMe.spam'])
59+
self.assertEqual(self.completer.attr_matches('Completeme.egg'), [])
60+
61+
CompleteMe.me = CompleteMe
62+
self.assertEqual(self.completer.attr_matches('CompleteMe.me.me.sp'),
63+
['CompleteMe.me.me.spam'])
64+
self.assertEqual(self.completer.attr_matches('egg.s'),
65+
['egg.{}('.format(x) for x in dir(str)
66+
if x.startswith('s')])
67+
68+
def test_main():
69+
support.run_unittest(TestRlcompleter)
70+
71+
72+
if __name__ == '__main__':
73+
test_main()

Lib/test/test_sundry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ def test_at_least_import_untested_modules(self):
5656
import os2emxpath
5757
import pstats
5858
import py_compile
59-
import rlcompleter
6059
import sndhdr
6160
import symbol
6261
import tabnanny

Misc/ACKS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,7 @@ Grant Olson
591591
Piet van Oostrum
592592
Jason Orendorff
593593
Douglas Orr
594+
Michele Orrù
594595
Denis S. Otkidach
595596
Michael Otteneder
596597
R. M. Oudkerk

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ Tools/Demos
108108
Tests
109109
-----
110110

111+
- Issue #9496: Provide a test suite for the rlcompleter module. Patch by
112+
Michele Orrù.
113+
111114
- Issue #8687: provide a test suite for sched.py module.
112115

113116

0 commit comments

Comments
 (0)