Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_cmd.py @ 80661:94de77bd0b4b 2.7
Issue #16194: document imp.load_dynamic problems
when read several extension modules from the same binary object file.
| author | Andrew Svetlov <andrew.svetlov@gmail.com> |
|---|---|
| date | Thu, 29 Nov 2012 19:51:28 +0200 |
| parents | 076ae30e5dd0 |
| children |
| rev | line source |
|---|---|
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
2 """ |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
3 Test script for the 'cmd' module |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
4 Original by Michael Schneider |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
5 """ |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
6 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
7 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
8 import cmd |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
9 import sys |
|
61045
baefd7b425f1
Issue #7449, part 10: test_cmd imports trace module using test_support.import_module()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58173
diff
changeset
|
10 from test import test_support |
|
63398
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
11 import re |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
12 import unittest |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
13 import StringIO |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
14 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
15 class samplecmdclass(cmd.Cmd): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
16 """ |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
17 Instance the sampleclass: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
18 >>> mycmd = samplecmdclass() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
19 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
20 Test for the function parseline(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
21 >>> mycmd.parseline("") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
22 (None, None, '') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
23 >>> mycmd.parseline("?") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
24 ('help', '', 'help ') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
25 >>> mycmd.parseline("?help") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
26 ('help', 'help', 'help help') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
27 >>> mycmd.parseline("!") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
28 ('shell', '', 'shell ') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
29 >>> mycmd.parseline("!command") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
30 ('shell', 'command', 'shell command') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
31 >>> mycmd.parseline("func") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
32 ('func', '', 'func') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
33 >>> mycmd.parseline("func arg1") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
34 ('func', 'arg1', 'func arg1') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
35 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
36 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
37 Test for the function onecmd(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
38 >>> mycmd.onecmd("") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
39 >>> mycmd.onecmd("add 4 5") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
40 9 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
41 >>> mycmd.onecmd("") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
42 9 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
43 >>> mycmd.onecmd("test") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
44 *** Unknown syntax: test |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
45 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
46 Test for the function emptyline(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
47 >>> mycmd.emptyline() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
48 *** Unknown syntax: test |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
49 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
50 Test for the function default(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
51 >>> mycmd.default("default") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
52 *** Unknown syntax: default |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
53 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
54 Test for the function completedefault(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
55 >>> mycmd.completedefault() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
56 This is the completedefault methode |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
57 >>> mycmd.completenames("a") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
58 ['add'] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
59 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
60 Test for the function completenames(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
61 >>> mycmd.completenames("12") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
62 [] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
63 >>> mycmd.completenames("help") |
|
58173
8e82dd5522f0
#5991: let completion for the "help" command include help topics.
Georg Brandl <georg@python.org>
parents:
58172
diff
changeset
|
64 ['help'] |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
65 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
66 Test for the function complete_help(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
67 >>> mycmd.complete_help("a") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
68 ['add'] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
69 >>> mycmd.complete_help("he") |
|
58173
8e82dd5522f0
#5991: let completion for the "help" command include help topics.
Georg Brandl <georg@python.org>
parents:
58172
diff
changeset
|
70 ['help'] |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
71 >>> mycmd.complete_help("12") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
72 [] |
|
58173
8e82dd5522f0
#5991: let completion for the "help" command include help topics.
Georg Brandl <georg@python.org>
parents:
58172
diff
changeset
|
73 >>> sorted(mycmd.complete_help("")) |
|
8e82dd5522f0
#5991: let completion for the "help" command include help topics.
Georg Brandl <georg@python.org>
parents:
58172
diff
changeset
|
74 ['add', 'exit', 'help', 'shell'] |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
75 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
76 Test for the function do_help(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
77 >>> mycmd.do_help("testet") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
78 *** No help on testet |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
79 >>> mycmd.do_help("add") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
80 help text for add |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
81 >>> mycmd.onecmd("help add") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
82 help text for add |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
83 >>> mycmd.do_help("") |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
84 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
85 Documented commands (type help <topic>): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
86 ======================================== |
|
78132
076ae30e5dd0
Issue 15337: help() shown as undocumented
Raymond Hettinger <python@rcn.com>
parents:
75027
diff
changeset
|
87 add help |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
88 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
89 Undocumented commands: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
90 ====================== |
|
78132
076ae30e5dd0
Issue 15337: help() shown as undocumented
Raymond Hettinger <python@rcn.com>
parents:
75027
diff
changeset
|
91 exit shell |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
92 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
93 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
94 Test for the function print_topics(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
95 >>> mycmd.print_topics("header", ["command1", "command2"], 2 ,10) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
96 header |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
97 ====== |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
98 command1 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
99 command2 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
100 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
101 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
102 Test for the function columnize(): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
103 >>> mycmd.columnize([str(i) for i in xrange(20)]) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
104 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
105 >>> mycmd.columnize([str(i) for i in xrange(20)], 10) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
106 0 7 14 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
107 1 8 15 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
108 2 9 16 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
109 3 10 17 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
110 4 11 18 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
111 5 12 19 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
112 6 13 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
113 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
114 This is a interactive test, put some commands in the cmdqueue attribute |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
115 and let it execute |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
116 This test includes the preloop(), postloop(), default(), emptyline(), |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
117 parseline(), do_help() functions |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
118 >>> mycmd.use_rawinput=0 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
119 >>> mycmd.cmdqueue=["", "add", "add 4 5", "help", "help add","exit"] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
120 >>> mycmd.cmdloop() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
121 Hello from preloop |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
122 help text for add |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
123 *** invalid number of arguments |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
124 9 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
125 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
126 Documented commands (type help <topic>): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
127 ======================================== |
|
78132
076ae30e5dd0
Issue 15337: help() shown as undocumented
Raymond Hettinger <python@rcn.com>
parents:
75027
diff
changeset
|
128 add help |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
129 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
130 Undocumented commands: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
131 ====================== |
|
78132
076ae30e5dd0
Issue 15337: help() shown as undocumented
Raymond Hettinger <python@rcn.com>
parents:
75027
diff
changeset
|
132 exit shell |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
133 <BLANKLINE> |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
134 help text for add |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
135 Hello from postloop |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
136 """ |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
137 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
138 def preloop(self): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
139 print "Hello from preloop" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
140 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
141 def postloop(self): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
142 print "Hello from postloop" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
143 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
144 def completedefault(self, *ignored): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
145 print "This is the completedefault methode" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
146 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
147 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
148 def complete_command(self): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
149 print "complete command" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
150 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
151 |
|
58172
f560a817bfcb
Small fixes to test_cmd: fix signature of do_shell, remove duplicate import, add option to run the custom Cmd class.
Georg Brandl <georg@python.org>
parents:
45468
diff
changeset
|
152 def do_shell(self, s): |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
153 pass |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
154 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
155 def do_add(self, s): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
156 l = s.split() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
157 if len(l) != 2: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
158 print "*** invalid number of arguments" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
159 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
160 try: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
161 l = [int(i) for i in l] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
162 except ValueError: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
163 print "*** arguments should be numbers" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
164 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
165 print l[0]+l[1] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
166 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
167 def help_add(self): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
168 print "help text for add" |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
169 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
170 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
171 def do_exit(self, arg): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
172 return True |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
173 |
|
63398
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
174 |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
175 class TestAlternateInput(unittest.TestCase): |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
176 |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
177 class simplecmd(cmd.Cmd): |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
178 |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
179 def do_print(self, args): |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
180 print >>self.stdout, args |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
181 |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
182 def do_EOF(self, args): |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
183 return True |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
184 |
| 75024 | 185 |
| 186 class simplecmd2(simplecmd): | |
| 187 | |
| 188 def do_EOF(self, args): | |
| 75027 | 189 print >>self.stdout, '*** Unknown syntax: EOF' |
| 75024 | 190 return True |
| 191 | |
| 192 | |
|
63398
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
193 def test_file_with_missing_final_nl(self): |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
194 input = StringIO.StringIO("print test\nprint test2") |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
195 output = StringIO.StringIO() |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
196 cmd = self.simplecmd(stdin=input, stdout=output) |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
197 cmd.use_rawinput = False |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
198 cmd.cmdloop() |
|
63397
e80577d56a8f
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
61045
diff
changeset
|
199 self.assertMultiLineEqual(output.getvalue(), |
|
63398
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
200 ("(Cmd) test\n" |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
201 "(Cmd) test2\n" |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
202 "(Cmd) ")) |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
203 |
|
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
204 |
| 75024 | 205 def test_input_reset_at_EOF(self): |
| 75027 | 206 input = StringIO.StringIO("print test\nprint test2") |
| 207 output = StringIO.StringIO() | |
| 75024 | 208 cmd = self.simplecmd2(stdin=input, stdout=output) |
| 209 cmd.use_rawinput = False | |
| 210 cmd.cmdloop() | |
| 211 self.assertMultiLineEqual(output.getvalue(), | |
| 212 ("(Cmd) test\n" | |
| 213 "(Cmd) test2\n" | |
| 214 "(Cmd) *** Unknown syntax: EOF\n")) | |
| 75027 | 215 input = StringIO.StringIO("print \n\n") |
| 216 output = StringIO.StringIO() | |
| 75024 | 217 cmd.stdin = input |
| 218 cmd.stdout = output | |
| 219 cmd.cmdloop() | |
| 220 self.assertMultiLineEqual(output.getvalue(), | |
| 221 ("(Cmd) \n" | |
| 222 "(Cmd) \n" | |
| 223 "(Cmd) *** Unknown syntax: EOF\n")) | |
| 224 | |
| 225 | |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
226 def test_main(verbose=None): |
|
61045
baefd7b425f1
Issue #7449, part 10: test_cmd imports trace module using test_support.import_module()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58173
diff
changeset
|
227 from test import test_cmd |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
228 test_support.run_doctest(test_cmd, verbose) |
|
63398
dcb16d703653
Merged revisions 83381 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
58172
diff
changeset
|
229 test_support.run_unittest(TestAlternateInput) |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
230 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
231 def test_coverage(coverdir): |
|
61045
baefd7b425f1
Issue #7449, part 10: test_cmd imports trace module using test_support.import_module()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58173
diff
changeset
|
232 trace = test_support.import_module('trace') |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
233 tracer=trace.Trace(ignoredirs=[sys.prefix, sys.exec_prefix,], |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
234 trace=0, count=1) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
235 tracer.run('reload(cmd);test_main()') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
236 r=tracer.results() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
237 print "Writing coverage results..." |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
238 r.write_results(show_missing=True, summary=True, coverdir=coverdir) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
239 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
240 if __name__ == "__main__": |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
241 if "-c" in sys.argv: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
242 test_coverage('/tmp/cmd.cover') |
|
58172
f560a817bfcb
Small fixes to test_cmd: fix signature of do_shell, remove duplicate import, add option to run the custom Cmd class.
Georg Brandl <georg@python.org>
parents:
45468
diff
changeset
|
243 elif "-i" in sys.argv: |
|
f560a817bfcb
Small fixes to test_cmd: fix signature of do_shell, remove duplicate import, add option to run the custom Cmd class.
Georg Brandl <georg@python.org>
parents:
45468
diff
changeset
|
244 samplecmdclass().cmdloop() |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
245 else: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
246 test_main() |
