annotate Lib/test/test_cmd.py @ 78069:a8aa77458e12 3.2

Add c_size_t and c_ssize_t to the ctypes summary table.
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 12 Jul 2012 20:31:50 +0200
parents 3a40af30449e
children 294f8aeb4d4b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
75025
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
183
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
184 class simplecmd2(simplecmd):
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
185
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
186 def do_EOF(self, args):
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
187 print('*** Unknown syntax: EOF', file=self.stdout)
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
188 return True
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
189
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
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
75025
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
203 def test_input_reset_at_EOF(self):
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
204 input = io.StringIO("print test\nprint test2")
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
205 output = io.StringIO()
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
206 cmd = self.simplecmd2(stdin=input, stdout=output)
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
207 cmd.use_rawinput = False
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
208 cmd.cmdloop()
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
209 self.assertMultiLineEqual(output.getvalue(),
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
210 ("(Cmd) test\n"
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
211 "(Cmd) test2\n"
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
212 "(Cmd) *** Unknown syntax: EOF\n"))
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
213 input = io.StringIO("print \n\n")
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
214 output = io.StringIO()
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
215 cmd.stdin = input
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
216 cmd.stdout = output
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
217 cmd.cmdloop()
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
218 self.assertMultiLineEqual(output.getvalue(),
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
219 ("(Cmd) \n"
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
220 "(Cmd) \n"
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
221 "(Cmd) *** Unknown syntax: EOF\n"))
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
222
3a40af30449e Test for issue #13500
Jesus Cea <jcea@jcea.es>
parents: 68257
diff changeset
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')
44104
ff1766eb2fce Merged revisions 59259-59274 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
231 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
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()