Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_cmd.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| 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() |
