Commit a8b5c587 authored by Antoine Pitrou's avatar Antoine Pitrou

Issue #9496: Provide a test suite for the rlcompleter module. Patch by

Michele Orrù.
parent 4c0d7228
from test import support
import unittest
import builtins
import rlcompleter
class CompleteMe:
""" Trivial class used in testing rlcompleter.Completer. """
spam = 1
class TestRlcompleter(unittest.TestCase):
def setUp(self):
self.stdcompleter = rlcompleter.Completer()
self.completer = rlcompleter.Completer(dict(spam=int,
egg=str,
CompleteMe=CompleteMe))
# forces stdcompleter to bind builtins namespace
self.stdcompleter.complete('', 0)
def test_namespace(self):
class A(dict):
pass
class B(list):
pass
self.assertTrue(self.stdcompleter.use_main_ns)
self.assertFalse(self.completer.use_main_ns)
self.assertFalse(rlcompleter.Completer(A()).use_main_ns)
self.assertRaises(TypeError, rlcompleter.Completer, B((1,)))
def test_global_matches(self):
# test with builtins namespace
self.assertEqual(self.stdcompleter.global_matches('di'),
[x+'(' for x in dir(builtins) if x.startswith('di')])
self.assertEqual(self.stdcompleter.global_matches('st'),
[x+'(' for x in dir(builtins) if x.startswith('st')])
self.assertEqual(self.stdcompleter.global_matches('akaksajadhak'), [])
# test with a customized namespace
self.assertEqual(self.completer.global_matches('CompleteM'),
['CompleteMe('])
self.assertEqual(self.completer.global_matches('eg'),
['egg('])
# XXX: see issue5256
self.assertEqual(self.completer.global_matches('CompleteM'),
['CompleteMe('])
def test_attr_matches(self):
# test with builtins namespace
self.assertEqual(self.stdcompleter.attr_matches('str.s'),
['str.{}('.format(x) for x in dir(str)
if x.startswith('s')])
self.assertEqual(self.stdcompleter.attr_matches('tuple.foospamegg'), [])
# test with a customized namespace
self.assertEqual(self.completer.attr_matches('CompleteMe.sp'),
['CompleteMe.spam'])
self.assertEqual(self.completer.attr_matches('Completeme.egg'), [])
CompleteMe.me = CompleteMe
self.assertEqual(self.completer.attr_matches('CompleteMe.me.me.sp'),
['CompleteMe.me.me.spam'])
self.assertEqual(self.completer.attr_matches('egg.s'),
['egg.{}('.format(x) for x in dir(str)
if x.startswith('s')])
def test_main():
support.run_unittest(TestRlcompleter)
if __name__ == '__main__':
test_main()
...@@ -56,7 +56,6 @@ class TestUntestedModules(unittest.TestCase): ...@@ -56,7 +56,6 @@ class TestUntestedModules(unittest.TestCase):
import os2emxpath import os2emxpath
import pstats import pstats
import py_compile import py_compile
import rlcompleter
import sndhdr import sndhdr
import symbol import symbol
import tabnanny import tabnanny
......
...@@ -591,6 +591,7 @@ Grant Olson ...@@ -591,6 +591,7 @@ Grant Olson
Piet van Oostrum Piet van Oostrum
Jason Orendorff Jason Orendorff
Douglas Orr Douglas Orr
Michele Orrù
Denis S. Otkidach Denis S. Otkidach
Michael Otteneder Michael Otteneder
R. M. Oudkerk R. M. Oudkerk
......
...@@ -108,6 +108,9 @@ Tools/Demos ...@@ -108,6 +108,9 @@ Tools/Demos
Tests Tests
----- -----
- Issue #9496: Provide a test suite for the rlcompleter module. Patch by
Michele Orrù.
- Issue #8687: provide a test suite for sched.py module. - Issue #8687: provide a test suite for sched.py module.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment