Commit | Line | Data |
---|---|---|
920dae64 AT |
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) |