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