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 / Options_test.py
CommitLineData
86530b38
AT
1# This tests Pmw option and component handling.
2
3import Tkinter
4import Test
5import Pmw
6
7Test.initialise()
8
9"""
10 Definitions:
11 initialisation option: an option that can be set in the call
12 to the constructor but not in configure()
13 configuration option: an option that can be set in the call
14 to the constructor and to configure()
15 option: either an initialisation option or a configuration option
16
17 Tests
18 -----
19 in constructor:
20 + define an option, its default value and whether it is an
21 initialisation or a configuration option
22 + set a callback function for a configuration option
23 + set a different default for an option of a base class
24 + set a different default for an option of a component of a base class
25 + override the callback for a configuration option of a base class
26 + create a component
27 + create an alias for a component
28 + create an alias for a sub-component
29
30 calling constructor:
31 + set an option
32 + set an option of a base class
33 + set an option of a component created in the constructor
34 + set an option of an aliased component or sub-component created in
35 the constructor
36 + set an option of one or more components via their group name
37 + use the default value of an option
38 + use the default value of an option of a base class
39 + use the default value of an option of a base class where the default
40 value is redefined in the derived class
41
42 calling configure:
43 + set a configuration option
44 + set a configuration option of a base class
45 + set a configuration option of a component
46 + set a configuration option of an aliased component or sub-component
47 + set a configuration option of one or more components via their group name
48 + set a configuration option with a callback
49 + set a configuration option of a base class with a callback in the
50 derived class
51"""
52
53class Simple(Pmw.MegaWidget):
54 def __init__(self, parent = None, **kw):
55 optiondefs = (
56 ('initsimple1', 'initsimple1', Pmw.INITOPT),
57 ('initsimple2', 'initsimple2', Pmw.INITOPT),
58 ('optsimple1', 'optsimple1', None),
59 ('optsimple2', 'optsimple2', None),
60 )
61 self.defineoptions(kw, optiondefs)
62 Pmw.MegaWidget.__init__(self, parent)
63
64 interior = self.interior()
65 self._widget = self.createcomponent('widget',
66 (('widgy', 'widget'),), None,
67 Tkinter.Button, (interior,))
68 self._widget.grid(column=0, row=0, sticky='nsew')
69
70 self.initialiseoptions()
71
72class Complex(Pmw.MegaWidget):
73 def __init__(self, parent = None, **kw):
74 optiondefs = (
75 ('initcomplex1', 'initcomplex1', Pmw.INITOPT),
76 ('initcomplex2', 'initcomplex2', Pmw.INITOPT),
77 ('optcomplex1', 'optcomplex1', None),
78 ('optcomplex2', 'optcomplex2', None),
79 )
80 self.defineoptions(kw, optiondefs)
81 Pmw.MegaWidget.__init__(self, parent)
82
83 interior = self.interior()
84 self._simple = self.createcomponent('simple',
85 (('widget', 'simple_widget'),), None,
86 Simple, (interior,))
87 self._simple.grid(column=0, row=0, sticky='nsew')
88
89 self.initialiseoptions()
90
91class Base(Pmw.MegaWidget):
92 def __init__(self, parent = None, **kw):
93 optiondefs = (
94 ('initbase1', 'initbase1', Pmw.INITOPT),
95 ('initbase2', 'initbase2', Pmw.INITOPT),
96 ('initbase3', 'initbase3', Pmw.INITOPT),
97 ('optbase1', 'optbase1', self._optbase1),
98 ('optbase2', 'optbase2', None),
99 ('optbase3', 'optbase3', None),
100 )
101 self.defineoptions(kw, optiondefs)
102 Pmw.MegaWidget.__init__(self, parent)
103
104 oldInterior = Pmw.MegaWidget.interior(self)
105 self._widget = self.createcomponent('basesimple',
106 (('widget', 'basesimple_widget'),), None,
107 Simple, (oldInterior,))
108 self._widget.grid(column=0, row=0, sticky='nsew')
109
110 self._child = self.createcomponent('child',
111 (), 'Mygroup',
112 Tkinter.Frame, (oldInterior,))
113 self._child.grid(column=0, row=1, sticky='nsew')
114
115 self._groupie = self.createcomponent('groupie',
116 (), 'Mygroup',
117 Tkinter.Button, (oldInterior,), text = 'XXXXX')
118 self._groupie.grid(column=0, row=2, sticky='nsew')
119
120 self.basedummy = []
121
122 self.initialiseoptions()
123
124 def _optbase1(self):
125 self.basedummy.append(self['optbase1'])
126
127 def getbasedummy(self):
128 return self.basedummy
129
130 def interior(self):
131 return self._child
132
133class Derived(Base):
134 def __init__(self, parent = None, **kw):
135 # Define the options for this megawidget.
136 optiondefs = (
137 ('initbase2', 'initbase2inderived', Pmw.INITOPT),
138 ('initderived1', 'initderived1', Pmw.INITOPT),
139 ('initderived2', 'initderived2', Pmw.INITOPT),
140 ('optbase1', 'optbase1', self._optbase1),
141 ('optderived1', 'optderived1', None),
142 ('optderived2', 'optderived2', None),
143 ('groupie_text', 'YYYYY', None),
144 )
145 self.defineoptions(kw, optiondefs)
146
147 # Initialise the base class (after defining my options).
148 Base.__init__(self, parent)
149
150 # Create components.
151 interior = self.interior()
152 self._widget = self.createcomponent('derivedcomplex',
153 (('derivedsimple', 'derivedcomplex_simple'),), None,
154 Complex, (interior,))
155 self._widget.grid(column=0, row=0, sticky='nsew')
156
157 # Initialise instance.
158
159 # Initialise instance variables.
160 self.deriveddummy = []
161
162 # Check keywords and initialise options.
163 self.initialiseoptions()
164
165 def _optbase1(self):
166 self.deriveddummy.append(self['optbase1'])
167
168 def getderiveddummy(self):
169 return self.deriveddummy
170
171testData = ()
172
173c = Simple
174kw_1 = {
175 'hull_borderwidth' :2,
176 'hull_relief' :'sunken',
177 'hull_background' :'red',
178 'widget_text' :'simple',
179 'widgy_foreground' :'red',
180 'initsimple1' :'initsimple1_new',
181}
182tests = (
183 (c.pack, ()),
184 (c.components, (), ['hull', 'widget']),
185 (c.componentaliases, (), [('widgy', 'widget'),]),
186 (c.options, (), [('initsimple1', 'initsimple1', 1), ('initsimple2', 'initsimple2', 1), ('optsimple1', 'optsimple1', 0), ('optsimple2', 'optsimple2', 0)]),
187 (c.cget, 'initsimple1', 'initsimple1_new'),
188 (c.cget, 'initsimple2', 'initsimple2'),
189 (c.cget, 'optsimple1', 'optsimple1'),
190 (c.cget, 'optsimple2', 'optsimple2'),
191 (c.cget, 'widget_foreground', 'red'),
192 ('optsimple1', 'optsimple1_new'),
193 (c.cget, 'optsimple1', 'optsimple1_new'),
194)
195testData = testData + ((c, ((tests, kw_1),)),)
196
197
198c = Complex
199kw_1 = {
200 'hull_borderwidth' : 2,
201 'hull_relief' : 'sunken',
202 'hull_background' : 'red',
203 'simple_widget_text' : 'complex',
204 'widget_foreground' : 'yellow',
205}
206tests = (
207 (c.pack, ()),
208 (c.components, (), ['hull', 'simple']),
209 (c.componentaliases, (), [('widget', 'simple_widget'),]),
210 (c.options, (), [('initcomplex1', 'initcomplex1', 1), ('initcomplex2', 'initcomplex2', 1), ('optcomplex1', 'optcomplex1', 0), ('optcomplex2', 'optcomplex2', 0)]),
211)
212testData = testData + ((c, ((tests, kw_1),)),)
213
214c = Base
215kw_1 = {
216 'hull_borderwidth' : 2,
217 'hull_relief' : 'sunken',
218 'hull_background' : 'red',
219 'basesimple_widget_text' : 'base',
220 'widget_foreground' : 'green',
221 'initbase1' : 'initbase1_new',
222}
223tests = (
224 (c.pack, ()),
225 (c.components, (), ['basesimple', 'child', 'groupie', 'hull']),
226 (c.componentaliases, (), [('widget', 'basesimple_widget'),]),
227 (c.options, (), [('initbase1', 'initbase1', 1), ('initbase2', 'initbase2', 1), ('initbase3', 'initbase3', 1), ('optbase1', 'optbase1', 0), ('optbase2', 'optbase2', 0), ('optbase3', 'optbase3', 0)]),
228 (c.cget, 'widget_foreground', 'green'),
229 (c.cget, 'basesimple_widget_foreground', 'green'),
230 (c.cget, 'basesimple_widgy_foreground', 'green'),
231 ('widget_foreground', 'blue'),
232 (c.cget, 'widget_foreground', 'blue'),
233 (c.cget, 'basesimple_widget_foreground', 'blue'),
234 (c.cget, 'basesimple_widgy_foreground', 'blue'),
235 (c.cget, 'optbase1', 'optbase1'),
236 (c.cget, 'groupie_text', 'XXXXX'),
237 # When Test created the widget, it performed a test where it configured
238 # each option. Hence, _optbase1() has been called twice:
239 (c.getbasedummy, (), ['optbase1', 'optbase1']),
240 ('optbase1', 'basedummy_new'),
241 (c.getbasedummy, (), ['optbase1', 'optbase1', 'basedummy_new']),
242)
243testData = testData + ((c, ((tests, kw_1),)),)
244
245
246c = Derived
247kw_1 = {
248 'hull_borderwidth' : 2,
249 'hull_relief' : 'sunken',
250 'hull_background' : 'red',
251 'basesimple_widget_text' : 'base simple',
252 'derivedcomplex_widget_text' : 'derived complex',
253 'initderived1' : 'initderived1_new',
254 'initbase1' : 'initbase1_new',
255 'optbase3' : 'optbase3_new',
256 'derivedcomplex_initcomplex1' : 'derivedcomplex_initcomplex1',
257 'derivedsimple_initsimple1' : 'derivedsimple_initsimple1',
258 'hull_cursor' : 'gumby',
259 'Mygroup_borderwidth' : 2,
260 'Mygroup_relief' : 'ridge',
261}
262tests = (
263 (c.pack, ()),
264 (c.components, (), ['basesimple', 'child', 'derivedcomplex', 'groupie', 'hull']),
265 (c.componentaliases, (), [('derivedsimple', 'derivedcomplex_simple'), ('widget', 'basesimple_widget'),]),
266 (c.options, (), [('initbase1', 'initbase1', 1), ('initbase2', 'initbase2inderived', 1), ('initbase3', 'initbase3', 1), ('initderived1', 'initderived1', 1), ('initderived2', 'initderived2', 1), ('optbase1', 'optbase1', 0), ('optbase2', 'optbase2', 0), ('optbase3', 'optbase3', 0), ('optderived1', 'optderived1', 0), ('optderived2', 'optderived2', 0), ]),
267 (c.getbasedummy, (), []),
268 (c.getderiveddummy, (), ['optbase1', 'optbase1']),
269 ('optbase1', 'derivedbasedummy_new'),
270 (c.getbasedummy, (), []),
271 (c.getderiveddummy, (), ['optbase1', 'optbase1', 'derivedbasedummy_new']),
272 (c.cget, 'optbase3', 'optbase3_new'),
273 ('optbase3', 'optbase3_newer'),
274 (c.cget, 'optbase3', 'optbase3_newer'),
275 (c.cget, 'optderived1', 'optderived1'),
276 (c.cget, 'initderived1', 'initderived1_new'),
277 (c.cget, 'initbase2', 'initbase2inderived'),
278 (c.cget, 'initbase1', 'initbase1_new'),
279 (c.cget, 'initbase3', 'initbase3'),
280 (c.cget, 'groupie_text', 'YYYYY'),
281 ('groupie_text', 'ZZZZZ'),
282 (c.cget, 'groupie_text', 'ZZZZZ'),
283 (c.cget, 'derivedcomplex_optcomplex1', 'optcomplex1'),
284 ('derivedcomplex_optcomplex1', 'optcomplex1_new'),
285 (c.cget, 'derivedcomplex_optcomplex1', 'optcomplex1_new'),
286 (c.cget, 'derivedsimple_optsimple2', 'optsimple2'),
287 ('derivedsimple_optsimple2', 'optsimple2_new'),
288 (c.cget, 'derivedcomplex_simple_optsimple2', 'optsimple2_new'),
289 ('derivedcomplex_simple_optsimple2', 'optsimple2_newer'),
290 (c.cget, 'derivedsimple_optsimple2', 'optsimple2_newer'),
291 (c.cget, 'hull_cursor', 'gumby'),
292 (c.cget, 'groupie_relief', 'ridge'),
293 (c.cget, 'Mygroup_relief', 'ridge'),
294 ('Mygroup_relief', 'sunken'),
295 (c.cget, 'groupie_relief', 'sunken'),
296 (c.cget, 'Mygroup_relief', 'sunken'),
297 ('groupie_relief', 'groove'),
298 (c.cget, 'groupie_relief', 'groove'),
299)
300testData = testData + ((c, ((tests, kw_1),)),)
301
302if __name__ == '__main__':
303 #Test.setverbose(1)
304 Test.runTests(testData)