2 # Test script for the curses module
4 # This script doesn't actually display anything very coherent. but it
5 # does call every method and function.
7 # Functions not tested: {def,reset}_{shell,prog}_mode, getch(), getstr(),
8 # getmouse(), ungetmouse(), init_color()
11 import curses
, sys
, tempfile
13 # Optionally test curses module. This currently requires that the
14 # 'curses' resource be given on the regrtest command line using the -u
15 # option. If not available, nothing after this line will be executed.
17 from test
import test_support
18 test_support
.requires('curses')
20 def window_funcs(stdscr
):
21 "Test the methods of windows"
22 win
= curses
.newwin(10,10)
23 win
= curses
.newwin(5,5, 5,5)
24 win2
= curses
.newwin(15,15, 5,5)
26 for meth
in [stdscr
.addch
, stdscr
.addstr
]:
27 for args
in [('a'), ('a', curses
.A_BOLD
),
28 (4,4, 'a'), (5,5, 'a', curses
.A_BOLD
)]:
31 for meth
in [stdscr
.box
, stdscr
.clear
, stdscr
.clrtobot
,
32 stdscr
.clrtoeol
, stdscr
.cursyncup
, stdscr
.delch
,
33 stdscr
.deleteln
, stdscr
.erase
, stdscr
.getbegyx
,
34 stdscr
.getbkgd
, stdscr
.getkey
, stdscr
.getmaxyx
,
35 stdscr
.getparyx
, stdscr
.getyx
, stdscr
.inch
,
36 stdscr
.insertln
, stdscr
.instr
, stdscr
.is_wintouched
,
37 win
.noutrefresh
, stdscr
.redrawwin
, stdscr
.refresh
,
38 stdscr
.standout
, stdscr
.standend
, stdscr
.syncdown
,
39 stdscr
.syncup
, stdscr
.touchwin
, stdscr
.untouchwin
]:
42 stdscr
.addnstr('1234', 3)
43 stdscr
.addnstr('1234', 3, curses
.A_BOLD
)
44 stdscr
.addnstr(4,4, '1234', 3)
45 stdscr
.addnstr(5,5, '1234', 3, curses
.A_BOLD
)
47 stdscr
.attron(curses
.A_BOLD
)
48 stdscr
.attroff(curses
.A_BOLD
)
49 stdscr
.attrset(curses
.A_BOLD
)
51 stdscr
.bkgd(' ', curses
.A_REVERSE
)
53 stdscr
.bkgdset(' ', curses
.A_REVERSE
)
55 win
.border(65, 66, 67, 68,
57 win
.border('|', '!', '-', '_',
60 win
.border(65, 66, 67, 68,
65 raise RuntimeError, "Expected win.border() to raise TypeError"
69 win4
= stdscr
.derwin(2,2)
70 win4
= stdscr
.derwin(1,1, 5,5)
74 stdscr
.echochar('a', curses
.A_BOLD
)
76 stdscr
.hline('-', 5, curses
.A_BOLD
)
77 stdscr
.hline(1,1,'-', 5)
78 stdscr
.hline(1,1,'-', 5, curses
.A_BOLD
)
85 stdscr
.insnstr('abc', 3)
86 stdscr
.insnstr('abc', 3, curses
.A_BOLD
)
87 stdscr
.insnstr(5, 5, 'abc', 3)
88 stdscr
.insnstr(5, 5, 'abc', 3, curses
.A_BOLD
)
91 stdscr
.insstr('def', curses
.A_BOLD
)
92 stdscr
.insstr(5, 5, 'def')
93 stdscr
.insstr(5, 5, 'def', curses
.A_BOLD
)
94 stdscr
.is_linetouched(0)
110 stdscr
.setscrreg(10,15)
111 win3
= stdscr
.subwin(10,10)
112 win3
= stdscr
.subwin(10,10, 5,5)
115 stdscr
.touchline(5,5)
116 stdscr
.touchline(5,5,0)
118 stdscr
.vline('a', 3, curses
.A_STANDOUT
)
119 stdscr
.vline(1,1, 'a', 3)
120 stdscr
.vline(1,1, 'a', 3, curses
.A_STANDOUT
)
122 if hasattr(curses
, 'resize'):
124 if hasattr(curses
, 'enclose'):
128 def module_funcs(stdscr
):
129 "Test module-level functions"
131 for func
in [curses
.baudrate
, curses
.beep
, curses
.can_change_color
,
132 curses
.cbreak
, curses
.def_prog_mode
, curses
.doupdate
,
133 curses
.filter, curses
.flash
, curses
.flushinp
,
134 curses
.has_colors
, curses
.has_ic
, curses
.has_il
,
135 curses
.isendwin
, curses
.killchar
, curses
.longname
,
136 curses
.nocbreak
, curses
.noecho
, curses
.nonl
,
137 curses
.noqiflush
, curses
.noraw
,
138 curses
.reset_prog_mode
, curses
.termattrs
,
139 curses
.termname
, curses
.erasechar
, curses
.getsyx
]:
142 # Functions that actually need arguments
144 curses
.delay_output(1)
145 curses
.echo() ; curses
.echo(1)
147 f
= tempfile
.TemporaryFile()
158 win
= curses
.newwin(5,5)
159 win
= curses
.newwin(5,5, 1,1)
160 curses
.nl() ; curses
.nl(1)
163 curses
.raw() ; curses
.raw(1)
165 curses
.setupterm(fd
=sys
.__stdout
__.fileno())
166 curses
.tigetflag('hc')
167 curses
.tigetnum('co')
168 curses
.tigetstr('cr')
170 curses
.typeahead(sys
.__stdin
__.fileno())
175 # Functions only available on a few platforms
176 if curses
.has_colors():
178 curses
.init_pair(2, 1,1)
179 curses
.color_content(1)
181 curses
.pair_content(curses
.COLOR_PAIRS
)
182 curses
.pair_number(0)
184 if hasattr(curses
, 'keyname'):
187 if hasattr(curses
, 'has_key'):
190 if hasattr(curses
, 'getmouse'):
191 curses
.mousemask(curses
.BUTTON1_PRESSED
)
192 curses
.mouseinterval(10)
203 if __name__
== '__main__':
207 stdscr
= curses
.initscr()