Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_cmd.py @ 79691:05c8928362ee
Merge __next__ method link fixes with 3.3.
| author | Ezio Melotti <ezio.melotti@gmail.com> |
|---|---|
| date | Fri, 12 Oct 2012 13:46:37 +0300 |
| parents | 294f8aeb4d4b |
| children |
| rev | line source |
|---|---|
|
59522
fcfe324663a6
convert shebang lines: python -> python3
Benjamin Peterson <benjamin@python.org>
parents:
58222
diff
changeset
|
1 #!/usr/bin/env python3 |
|
44104
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 |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
10 import re |
|
63399
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
11 import unittest |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
12 import io |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59522
diff
changeset
|
13 from test import support |
|
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") |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
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") |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
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 [] |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
73 >>> sorted(mycmd.complete_help("")) |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
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 ======================================== |
|
64576
f8c896ad787f
Add docstring to cmd.Cmd.do_help()
Raymond Hettinger <python@rcn.com>
parents:
63396
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 ====================== |
|
64576
f8c896ad787f
Add docstring to cmd.Cmd.do_help()
Raymond Hettinger <python@rcn.com>
parents:
63396
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(): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
103 >>> mycmd.columnize([str(i) for i in range(20)]) |
|
44104
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 |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
105 >>> mycmd.columnize([str(i) for i in range(20)], 10) |
|
44104
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 ======================================== |
|
64576
f8c896ad787f
Add docstring to cmd.Cmd.do_help()
Raymond Hettinger <python@rcn.com>
parents:
63396
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 ====================== |
|
64576
f8c896ad787f
Add docstring to cmd.Cmd.do_help()
Raymond Hettinger <python@rcn.com>
parents:
63396
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): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
139 print("Hello from preloop") |
|
44104
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): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
142 print("Hello from postloop") |
|
44104
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): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
145 print("This is the completedefault methode") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
146 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
147 def complete_command(self): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
148 print("complete command") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
149 |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
150 def do_shell(self, s): |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
151 pass |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
152 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
153 def do_add(self, s): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
154 l = s.split() |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
155 if len(l) != 2: |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
156 print("*** invalid number of arguments") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
157 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
158 try: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
159 l = [int(i) for i in l] |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
160 except ValueError: |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
161 print("*** arguments should be numbers") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
162 return |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
163 print(l[0]+l[1]) |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
164 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
165 def help_add(self): |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
166 print("help text for add") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
167 return |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
168 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
169 def do_exit(self, arg): |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
170 return True |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
171 |
|
63399
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
172 |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
173 class TestAlternateInput(unittest.TestCase): |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
174 |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
175 class simplecmd(cmd.Cmd): |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
176 |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
177 def do_print(self, args): |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
178 print(args, file=self.stdout) |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
179 |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
180 def do_EOF(self, args): |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
181 return True |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
182 |
| 75023 | 183 |
| 184 class simplecmd2(simplecmd): | |
| 185 | |
| 186 def do_EOF(self, args): | |
| 187 print('*** Unknown syntax: EOF', file=self.stdout) | |
| 188 return True | |
| 189 | |
| 190 | |
|
63399
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
191 def test_file_with_missing_final_nl(self): |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
192 input = io.StringIO("print test\nprint test2") |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
193 output = io.StringIO() |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
194 cmd = self.simplecmd(stdin=input, stdout=output) |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
195 cmd.use_rawinput = False |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
196 cmd.cmdloop() |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
197 self.assertMultiLineEqual(output.getvalue(), |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
198 ("(Cmd) test\n" |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
199 "(Cmd) test2\n" |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
200 "(Cmd) ")) |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
201 |
|
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
202 |
| 75023 | 203 def test_input_reset_at_EOF(self): |
| 204 input = io.StringIO("print test\nprint test2") | |
| 205 output = io.StringIO() | |
| 206 cmd = self.simplecmd2(stdin=input, stdout=output) | |
| 207 cmd.use_rawinput = False | |
| 208 cmd.cmdloop() | |
| 209 self.assertMultiLineEqual(output.getvalue(), | |
| 210 ("(Cmd) test\n" | |
| 211 "(Cmd) test2\n" | |
| 212 "(Cmd) *** Unknown syntax: EOF\n")) | |
| 213 input = io.StringIO("print \n\n") | |
| 214 output = io.StringIO() | |
| 215 cmd.stdin = input | |
| 216 cmd.stdout = output | |
| 217 cmd.cmdloop() | |
| 218 self.assertMultiLineEqual(output.getvalue(), | |
| 219 ("(Cmd) \n" | |
| 220 "(Cmd) \n" | |
| 221 "(Cmd) *** Unknown syntax: EOF\n")) | |
| 222 | |
| 223 | |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
224 def test_main(verbose=None): |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59522
diff
changeset
|
225 from test import test_cmd |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
226 support.run_doctest(test_cmd, verbose) |
|
63399
edda7596c831
Merged revisions 83380 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
47201
diff
changeset
|
227 support.run_unittest(TestAlternateInput) |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
228 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
229 def test_coverage(coverdir): |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59522
diff
changeset
|
230 trace = support.import_module('trace') |
|
77154
294f8aeb4d4b
Implemented PEP 405 (Python virtual environments).
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
75023
diff
changeset
|
231 tracer=trace.Trace(ignoredirs=[sys.base_prefix, sys.base_exec_prefix,], |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
232 trace=0, count=1) |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
233 tracer.run('reload(cmd);test_main()') |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
234 r=tracer.results() |
|
44106
40fcaadfb166
Fixed merge accident. Next time I'm going to run the entire test suite ...
Christian Heimes <christian@cheimes.de>
parents:
44104
diff
changeset
|
235 print("Writing coverage results...") |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
236 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
|
237 |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
238 if __name__ == "__main__": |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
239 if "-c" in sys.argv: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
240 test_coverage('/tmp/cmd.cover') |
|
58222
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
241 elif "-i" in sys.argv: |
|
f2d54096dc8c
Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
242 samplecmdclass().cmdloop() |
|
44104
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
243 else: |
|
ff1766eb2fce
Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff
changeset
|
244 test_main() |
