]> SALOME platform Git repositories - tools/eficas.git/blob - Pmw/Pmw_1_2/tests/NoteBook_test.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Pmw / Pmw_1_2 / tests / NoteBook_test.py
1 import Tkinter
2 import Test
3 import Pmw
4
5 Test.initialise()
6
7 c = Pmw.NoteBook
8
9 class callbackCollector:
10     def __init__(self):
11         self.list = []
12     def __call__(self, pageName):
13         self.list.append(pageName)
14     def get(self):
15         rtn = self.list
16         self.list = []
17         return rtn
18
19 createCallback = callbackCollector()
20 raiseCallback = callbackCollector()
21 lowerCallback = callbackCollector()
22
23 def checkCallbacks(clear = 0):
24     rtn = createCallback.get(), raiseCallback.get(), lowerCallback.get()
25     if not clear:
26         return rtn
27
28 def _populatePage(pageName):
29     w = Test.currentWidget()
30     page = w.page(pageName)
31     text = Tkinter.Text(page)
32     text.pack()
33     return w.pagenames()[w.index(pageName)]
34
35 def _getTopPageName():
36     w = Test.currentWidget()
37     return w._topPageName
38
39 kw_1 = {'tabpos' : None}
40 tests_1_common = (
41   (Test.num_options, (), 7),
42   ('createcommand', createCallback),
43   ('raisecommand', raiseCallback),
44   ('lowercommand', lowerCallback),
45   (checkCallbacks, 1),
46   (c.index, Pmw.END, 'ValueError: NoteBook has no pages'),
47   (c.index, Pmw.SELECT, 'ValueError: NoteBook has no pages'),
48   (c.setnaturalsize, ()),
49   (c.getcurselection, ()),
50   (c.insert, ('Temp', 0), {'page_pyclass' : Tkinter.Canvas}, Tkinter.Canvas),
51   (checkCallbacks, (), (['Temp'], ['Temp'], [])),
52   (c.getcurselection, (), 'Temp'),
53   (c.setnaturalsize, ()),
54   (c.delete, 'Temp'),
55   (checkCallbacks, (), ([], [], [])),
56   (c.getcurselection, ()),
57   (c.insert, ('Temp', Pmw.END), Tkinter.Frame),
58   (checkCallbacks, (), (['Temp'], ['Temp'], [])),
59   (c.delete, 'Temp'),
60   (c.add, 'Start', Tkinter.Frame),
61   ('Start_background', 'green'),
62   (c.insert, ('Final', Pmw.END), {'page_background' : 'blue'}, Tkinter.Frame),
63   (c.insert, ('Middle', 'Final'), Tkinter.Frame),
64   (c.index, Pmw.SELECT, 0),
65   (c.insert, ('First', 'Start'), Tkinter.Frame),
66   (c.index, Pmw.SELECT, 1),
67   (c.getcurselection, (), 'Start'),
68   (c.selectpage, Pmw.END),
69   (checkCallbacks, (), (['Start', 'Final'], ['Start', 'Final'], ['Start'])),
70   (c.index, Pmw.SELECT, 3),
71   (c.getcurselection, (), 'Final'),
72   (c.recolorborders, ()),
73   (c.selectpage, 2),
74   (c.index, Pmw.SELECT, 2),
75   (c.getcurselection, (), 'Middle'),
76   (checkCallbacks, (), (['Middle'], ['Middle'], ['Final'])),
77   (c.selectpage, 3),
78   (c.selectpage, 2),
79   (checkCallbacks, (), ([], ['Final', 'Middle'], ['Middle', 'Final'])),
80   (c.selectpage, 'Final'),
81   (c.index, Pmw.SELECT, 3),
82   (c.getcurselection, (), 'Final'),
83   (c.add, 'Last', Tkinter.Frame),
84   (c.pagenames, (), ['First', 'Start', 'Middle', 'Final', 'Last']),
85   (c.setnaturalsize, ()),
86   (_populatePage, Pmw.SELECT, 'Final'),
87   (_populatePage, 'Middle', 'Middle'),
88   (c.setnaturalsize, ()),
89   (c.add, 'Start', 'ValueError: Page "Start" already exists.'),
90   ('Page_background', 'yellow'),
91   (c.index, 1, 1),
92   (c.index, 10, 'ValueError: index "10" is out of range'),
93   (c.index, Pmw.END, 4),
94   (c.index, 'First', 0),
95   (c.index, 'Middle', 2),
96   (c.index, 'bogus', 'ValueError: bad index "bogus": ' + \
97       'must be a name, a number, Pmw.END or Pmw.SELECT'),
98   (c.previouspage, ()),
99   (c.getcurselection, (), 'Middle'),
100   (c.previouspage, 'Start'),
101   (c.getcurselection, (), 'First'),
102   (c.nextpage, ()),
103   (c.getcurselection, (), 'Start'),
104   (c.nextpage, 'Middle'),
105   (c.getcurselection, (), 'Final'),
106   (c.delete, ('First', 'Start', 'Middle', 'Final', 'Last')),
107   (c.add, 'Temp', {'page_pyclass' : Tkinter.Button}, Tkinter.Button),
108   (c.delete, 'Temp'),
109   (c.add, 'Temp', {'page_pyclass' : Tkinter.Text}, Tkinter.Text),
110   (c.delete, 'Temp'),
111   (c.add, 'Temp', {'page_pyclass' : Pmw.ScrolledText,
112       'page_vscrollmode' : 'static', 'page_text_state' : 'disabled'},
113       Pmw.ScrolledText),
114   ('Temp_text_background', 'red'),
115   (c.page, 'Temp', Pmw.ScrolledText),
116   (c.pagenames, (), ['Temp']),
117   (c.getcurselection, (), 'Temp'),
118   (c.delete, 'Temp'),
119   (c.getcurselection, (), None),
120   (c.add, 'Start', Tkinter.Frame),
121   (c.getcurselection, (), 'Start'),
122 )
123
124 tests_1 = tests_1_common + (
125   (_getTopPageName, (), None),
126   (c.pack, ()),
127   (_getTopPageName, (), 'Start'),
128   (c.delete, 'Start'),
129 ) + tests_1_common + (
130   (_getTopPageName, (), 'Start'),
131   (c.delete, 'Start'),
132   (c.pack_forget, ()),
133 ) + tests_1_common + (
134   (_getTopPageName, (), None),
135   (c.pack, ()),
136   (_getTopPageName, (), 'Start'),
137 )
138
139 kw_2 = {
140     'tabpos' : None,
141     'borderwidth' : 10,
142     'pagemargin' : 10,
143 }
144
145 tests_2 = (
146   (c.pack, ()),
147   ('hull_relief', 'sunken'),
148   ('hull_borderwidth', 20),
149 ) + tests_1_common
150
151 kw_3 = {}
152
153 tests_3 = (
154   (c.pack, ()),
155 ) + tests_1_common + (
156   ('Tab_background', 'red'),
157   (c.add, 'One', Tkinter.Frame),
158   (c.tab, 'One', Tkinter.Button),
159 )
160
161 alltests = (
162   (tests_1, kw_1),
163   (tests_1, kw_2),
164   (tests_1, kw_3),
165   (tests_2, kw_1),
166   (tests_2, kw_3),
167   (tests_3, kw_3),
168 )
169
170 testData = ((c, alltests),)
171
172 if __name__ == '__main__':
173     Test.runTests(testData)