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