Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / tests / Tkinter_test.py
CommitLineData
86530b38
AT
1# Tests for basic Tkinter widgets.
2
3import Tkinter
4import Test
5
6Test.initialise()
7testData = ()
8
9if Tkinter.TkVersion >= 8.0:
10 button_num = 31
11 frame_num = 16
12 menu_num = 20
13 menubutton_num = 32
14else:
15 button_num = 30
16 frame_num = 15
17 menu_num = 19
18 menubutton_num = 31
19
20c = Tkinter.Button
21tests = (
22 (c.pack, ()),
23 (Test.num_options, (), button_num),
24 ('text', 'Hello World'),
25 ('background', 'lightsteelblue1'),
26 ('foreground', 'seagreen4'),
27 ('command', Test.callback),
28 (c.flash, ()),
29 (c.invoke, (), '1'),
30)
31testData = testData + ((c, ((tests, {}),)),)
32
33c = Tkinter.Canvas
34tests = (
35 (c.pack, ()),
36 (Test.num_options, (), 27),
37 ('background', 'aliceblue'),
38 (c.create_oval, (100, 100, 200, 200),
39 {'fill' : 'lightsteelblue1', 'tags' : 'circle'}, 1),
40 (c.create_rectangle, (200, 100, 300, 200),
41 {'fill' : 'lightsteelblue2', 'tags' : 'square'}, 2),
42 (c.create_text, (0, 200),
43 {'text' : 'Hello, world', 'tags' : 'words', 'anchor' : 'w'}, 3),
44 (c.addtag_withtag, ('lightsteelblue1', 'circle')),
45 (c.bbox, ('circle', 'square'), (99, 99, 301, 201)),
46 (c.tag_bind, ('circle', '<1>', Test.callback)),
47 (c.tag_bind, 'circle', '<Button-1>'),
48 (c.tag_unbind, ('circle', '<1>')),
49 (c.canvasx, 100, 100.0),
50 (c.canvasy, 100, 100.0),
51 (c.coords, 'circle', [100.0, 100.0, 200.0, 200.0]),
52 (c.coords, ('circle', 0, 0, 300, 300), []),
53 (c.coords, 'circle', [0.0, 0.0, 300.0, 300.0]),
54 (c.find_withtag, 'lightsteelblue1', (1,)),
55 (c.focus, 'circle', ''),
56 (c.gettags, 'circle', ('circle', 'lightsteelblue1')),
57 (c.icursor, ('words', 7)),
58 (c.index, ('words', 'insert'), 7),
59 (c.insert, ('words', 'insert', 'cruel ')),
60 (c.itemconfigure, 'circle', {'fill': 'seagreen4'}),
61 (c.itemcget, ('circle', 'fill'), 'seagreen4'),
62 (c.lower, 'words'),
63 (c.move, ('square', -50, -50)),
64 (c.tkraise, ('words', 'circle')),
65 (c.scale, ('circle', 150, 150, 1.0, 0.5)),
66 (c.select_from, ('words', 0)),
67 (c.select_to, ('words', 'end')),
68 (c.delete, 'square'),
69 (c.type, 'circle', 'oval'),
70 (c.dtag, 'lightsteelblue1'),
71)
72testData = testData + ((c, ((tests, {}),)),)
73
74c = Tkinter.Checkbutton
75tests = (
76 (c.pack, ()),
77 (Test.num_options, (), 36),
78 ('text', 'Hello World'),
79 ('background', 'lightsteelblue1'),
80 ('foreground', 'seagreen4'),
81 ('command', Test.callback),
82 (c.flash, ()),
83 (c.invoke, (), '1'),
84)
85testData = testData + ((c, ((tests, {}),)),)
86
87c = Tkinter.Entry
88tests = (
89 (c.pack, ()),
90 (Test.num_options, (), 28),
91 ('background', 'lightsteelblue1'),
92 (c.insert, ('insert', 'Hello, Brian!')),
93 (c.delete, (7, 12)),
94 (c.icursor, 7),
95 (c.insert, ('insert', 'world')),
96 (c.get, (), 'Hello, world!'),
97 (c.index, 'insert', 12),
98 (c.selection_from, 7),
99 (c.selection_to, '12'),
100)
101testData = testData + ((c, ((tests, {}),)),)
102
103c = Tkinter.Frame
104tests = (
105 (c.pack, ()),
106 (Test.num_options, (), frame_num),
107 ('background', 'lightsteelblue1'),
108 ('width', 300),
109 ('height', 50),
110 ('background', 'lightsteelblue1'),
111)
112testData = testData + ((c, ((tests, {}),)),)
113
114c = Tkinter.Label
115tests = (
116 (c.pack, ()),
117 (Test.num_options, (), 25),
118 ('text', 'Hello World'),
119 ('background', 'lightsteelblue1'),
120 ('foreground', 'seagreen4'),
121 ('image', Test.earthris),
122)
123testData = testData + ((c, ((tests, {}),)),)
124
125c = Tkinter.Listbox
126tests = (
127 (c.pack, ()),
128 (Test.num_options, (), 23),
129 ('background', 'lightsteelblue1'),
130 ('foreground', 'seagreen4'),
131 (c.insert, (0, 'ABC', 'DEF', 'GHI', 'XXXXXXXXXXXX')),
132 (c.activate, 1),
133 (c.select_set, (2, 3)),
134 (c.curselection, (), ('2', '3')),
135 (c.delete, 1),
136 (c.get, 1, 'GHI'),
137 (c.get, (0, 1), ('ABC', 'GHI')),
138 (c.index, 'end', 3),
139 (c.nearest, 1, 0),
140 (c.see, 1),
141 (c.size, (), 3),
142)
143testData = testData + ((c, ((tests, {}),)),)
144
145c = Tkinter.Menu
146tests = (
147 (Test.num_options, (), menu_num),
148 ('background', 'lightsteelblue1'),
149 ('foreground', 'seagreen4'),
150 (c.add_command, (),
151 {'background': 'lightsteelblue2', 'label': 'Hello World'}),
152 (c.add_checkbutton, (),
153 {'background': 'lightsteelblue2', 'label': 'Charm'}),
154 (c.post, (100, 100)),
155 (c.activate, 1),
156 (c.entryconfigure, 'Hello World', {'background': 'aliceblue'}),
157 (c.entrycget, ('Hello World', 'background'), 'aliceblue'),
158 (c.index, 'end', 2),
159 ('tearoff', 0),
160 (c.index, 'end', 1),
161 (c.insert_radiobutton, 'Charm',
162 {'background': 'lightsteelblue2', 'label': 'Niceness',
163 'command': Test.callback}),
164 (c.invoke, 'Niceness', '1'),
165 (c.delete, 'Charm'),
166 (c.type, 'Hello World', 'command'),
167 (c.yposition, 'Hello World', 2),
168 (c.unpost, ()),
169)
170testData = testData + ((c, ((tests, {}),)),)
171
172c = Tkinter.Menubutton
173tests = (
174 (c.pack, ()),
175 (Test.num_options, (), menubutton_num),
176 ('text', 'Hello World'),
177 ('background', 'lightsteelblue1'),
178 ('foreground', 'seagreen4'),
179)
180testData = testData + ((c, ((tests, {}),)),)
181
182c = Tkinter.Message
183tests = (
184 (c.pack, ()),
185 (Test.num_options, (), 21),
186 ('text', 'Hello World'),
187 ('background', 'lightsteelblue1'),
188 ('foreground', 'seagreen4'),
189 ('text', 'Hello\nCruel Cruel World'),
190 ('borderwidth', 100),
191 ('justify', 'center'),
192 ('justify', 'right'),
193 ('justify', 'left'),
194)
195testData = testData + ((c, ((tests, {}),)),)
196
197c = Tkinter.Radiobutton
198tests = (
199 (c.pack, ()),
200 (Test.num_options, (), 35),
201 ('text', 'Hello World'),
202 ('value', 'Foo Bar'),
203 ('variable', Test.stringvar),
204 ('background', 'lightsteelblue1'),
205 ('foreground', 'seagreen4'),
206 ('text', 'Hello\nCruel Cruel World'),
207 ('command', Test.callback),
208 (c.select, ()),
209 (Test.stringvar.get, (), 'Foo Bar'),
210 (c.flash, ()),
211 (c.invoke, (), '1'),
212 (c.deselect, ()),
213 (Test.stringvar.get, (), ''),
214)
215testData = testData + ((c, ((tests, {}),)),)
216
217c = Tkinter.Scale
218tests = (
219 (c.pack, ()),
220 (Test.num_options, (), 33),
221 ('showvalue', 1),
222 ('orient', 'horizontal'),
223 ('from', 100.0),
224 ('to', 200.0),
225 ('variable', Test.floatvar),
226 ('background', 'lightsteelblue1'),
227 ('foreground', 'seagreen4'),
228 ('command', Test.callback1),
229 (c.set, 150.0),
230 (c.get, (), 150.0),
231 (c.get, 123, 'TypeError: too many arguments; expected 1, got 2'),
232)
233testData = testData + ((c, ((tests, {}),)),)
234
235c = Tkinter.Scrollbar
236tests = (
237 (c.pack, (), {'fill': 'x'}),
238 (Test.num_options, (), 20),
239 ('orient', 'horizontal'),
240 (Test.set_geom, (300, 50)),
241 (c.set, (0.3, 0.7)),
242 ('background', 'lightsteelblue1'),
243 ('troughcolor', 'aliceblue'),
244 (c.get, (), (0.3, 0.7)),
245 (c.activate, 'slider'),
246 (c.set, (0.5, 0.9)),
247 (c.delta, (0, 0), 0),
248 (c.fraction, (0, 0), 0),
249)
250testData = testData + ((c, ((tests, {}),)),)
251
252c = Tkinter.Text
253tests = (
254 (c.pack, ()),
255 (Test.num_options, (), 35),
256 ('background', 'lightsteelblue1'),
257 (c.insert, ('end', 'This little piggy is bold.', 'bold', '\n')),
258 (c.insert, ('end', 'This little piggy is in green.', 'green', '\n')),
259 (c.insert, ('end', 'This line is a mistake.\n')),
260 (c.insert, ('end', 'This little piggy is crossed out.', 'overstrike', '\n')),
261 (c.insert, ('end', 'This little piggy is raised.', 'raised', '\n')),
262 (c.insert, ('end', 'This little piggy is underlined.', 'underline', '\n')),
263 (c.tag_configure, 'bold', {'font': Test.font['variable']}),
264 (c.tag_configure, 'green', {'background': 'seagreen1'}),
265 (c.tag_configure, 'overstrike', {'overstrike': 1}),
266 (c.tag_configure, 'raised',
267 {'background': 'aliceblue', 'borderwidth': 2, 'relief': 'raised'}),
268 (c.tag_configure, 'underline', {'underline': 1}),
269 (c.compare, ('2.0', '<', 'end'), 1),
270 (c.delete, ('3.0', '4.0')),
271 (c.get, ('1.0', '1.4'), 'This'),
272 (c.index, 'end', '7.0'),
273 (c.mark_set, ('my_mark', '4.9')),
274 (c.mark_gravity, ('my_mark', 'right'), ''),
275 (c.mark_gravity, 'my_mark', 'right'),
276 (c.mark_names, (), ('my_mark', 'insert', 'current')),
277 (c.mark_unset, 'my_mark'),
278 (c.insert, ('end', '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')),
279 (c.insert, ('end', 'This is the last line.')),
280 (c.scan_mark, (0, 20)),
281 (c.scan_dragto, (0, 0)),
282 (c.scan_dragto, (0, 20)),
283 (c.tag_add, ('green', '1.0', '1.4')),
284 (c.tag_cget, ('raised', 'background'), 'aliceblue'),
285 (c.tag_lower, 'green'),
286 (c.tag_names, (),
287 ('green', 'sel', 'bold', 'overstrike', 'raised', 'underline')),
288 (c.tag_nextrange, ('raised', '0.0'), ('4.0', '4.28')),
289 (c.tag_raise, 'green'),
290 (c.tag_ranges, 'green', ('1.0', '1.4', '2.0', '2.30')),
291 (c.tag_remove, ('green', '1.0', '1.4')),
292 (c.tag_ranges, 'green', ('2.0', '2.30')),
293 (c.tag_delete, 'green'),
294 (c.search, ('Gre.n', '0.0'), {'regexp': 1, 'nocase': 1}, '2.24'),
295 (c.search, ('Gre.n', '3.0', 'end'), {'regexp': 1, 'nocase': 1}, ''),
296 (c.see, 'end'),
297 (c.see, '0.0'),
298)
299testData = testData + ((c, ((tests, {}),)),)
300
301#=============================================================================
302
303# Grid command
304
305def _makeGridButtons():
306 w = Test.currentWidget()
307 b1 = Tkinter.Button(w, text = 'Button 1')
308 b2 = Tkinter.Button(w, text = 'Button 2')
309 b3 = Tkinter.Button(w, text = 'Button 3')
310 b4 = Tkinter.Button(w, text = 'Button 4')
311 b5 = Tkinter.Button(w, text = 'Button 5')
312 b6 = Tkinter.Button(w, text = 'Button 6')
313 b7 = Tkinter.Button(w, text = 'Button 7')
314 b8 = Tkinter.Button(w, text = 'Button 8')
315
316 b1.grid(column=0, row=0)
317 b2.grid(column=1, row=0)
318 b3.grid(column=2, row=0, ipadx=50, ipady=50, padx=50, pady=50, sticky='nsew')
319 b4.grid(column=3, row=0)
320 b5.grid(column=0, row=1)
321 b6.grid(column=2, row=1, columnspan=2, rowspan=2, sticky='nsew')
322 b7.grid(column=0, row=2)
323 b8.grid(column=0, row=3, columnspan=4, padx=50, sticky='ew')
324
325def _checkGridSlaves():
326 w = Test.currentWidget()
327 return len(w.grid_slaves())
328
329def _checkGridInfo():
330 w = Test.currentWidget()
331 b8 = w.grid_slaves(column=0, row=3)[0]
332 info = b8.grid_info()
333 if info['in'] == w:
334 rtn = {}
335 for key, value in info.items():
336 if key != 'in':
337 rtn[key] = value
338 return rtn
339 return 'BAD'
340
341def _checkGridForget():
342 w = Test.currentWidget()
343 b8 = w.grid_slaves(column=0, row=3)[0]
344 b8.grid_forget()
345 return w.grid_size()
346
347# The -pad grid option was added in Tk 4.2.
348# Could not do columnconfigure(0) before Tk 4.2.
349if Tkinter.TkVersion >= 4.2:
350 padTest = {'pad': 25}
351 colTest = {'minsize': 100, 'pad': 25, 'weight': 1}
352 rowTest = {'minsize': 100, 'pad': 0, 'weight': 1}
353else:
354 padTest = {'minsize': 100}
355 colTest = 'TclError: wrong # args: should be "grid columnconfigure master index ?-option value...?"'
356 rowTest = 'TclError: wrong # args: should be "grid rowconfigure master index ?-option value...?"'
357
358c = Tkinter.Frame
359tests = (
360 (c.pack, (), {'fill': 'both', 'expand': 1}),
361 (_makeGridButtons, ()),
362 # (c.grid_bbox, (1, 2), (85, 268, 85, 34)),
363 (c.grid_columnconfigure, (0, 'minsize'), 0),
364 (c.grid_columnconfigure, (0, 'weight'), 0),
365 (c.grid_columnconfigure, 0, {'minsize': 100, 'weight': 1}),
366 (c.grid_columnconfigure, 0, padTest),
367 (c.grid_columnconfigure, 0, {}, colTest),
368 (c.grid_columnconfigure, (0, 'minsize'), 100),
369 (c.grid_columnconfigure, (0, 'weight'), 1),
370 (c.location, (200, 100), (2, 0)),
371 (c.grid_propagate, (), 1),
372 (c.grid_propagate, 0),
373 (c.grid_propagate, (), 0),
374 (c.grid_rowconfigure, (0, 'minsize'), 0),
375 (c.grid_rowconfigure, (0, 'weight'), 0),
376 (c.grid_rowconfigure, 0, {'minsize': 100, 'weight': 1}),
377 (c.grid_rowconfigure, 0, {}, rowTest),
378 (c.grid_size, (), (4, 4)),
379 (_checkGridSlaves, (), 8),
380 (_checkGridInfo, (), {}, {'column': '0', 'columnspan': '4',
381 'ipadx': '0', 'ipady': '0', 'padx': '50', 'pady': '0',
382 'row': '3', 'rowspan': '1', 'sticky': 'ew',
383 }),
384 (_checkGridForget, (), (4, 3)),
385 (_checkGridSlaves, (), 7),
386)
387
388testData = testData + ((c, ((tests, {}),)),)
389
390if __name__ == '__main__':
391 #Test.setverbose(1)
392 #Test.setdelay(1000)
393 Test.runTests(testData)