1import Tkinter 2import Test 3import Pmw 4 5Test.initialise() 6 7c = Pmw.NoteBook 8 9class 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 19createCallback = callbackCollector() 20raiseCallback = callbackCollector() 21lowerCallback = callbackCollector() 22 23def checkCallbacks(clear = 0): 24 rtn = createCallback.get(), raiseCallback.get(), lowerCallback.get() 25 if not clear: 26 return rtn 27 28def _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 35def _getTopPageName(): 36 w = Test.currentWidget() 37 return w._topPageName 38 39kw_1 = {'tabpos' : None} 40tests_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 124tests_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 139kw_2 = { 140 'tabpos' : None, 141 'borderwidth' : 10, 142 'pagemargin' : 10, 143} 144 145tests_2 = ( 146 (c.pack, ()), 147 ('hull_relief', 'sunken'), 148 ('hull_borderwidth', 20), 149) + tests_1_common 150 151kw_3 = {} 152 153tests_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 161alltests = ( 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 170testData = ((c, alltests),) 171 172if __name__ == '__main__': 173 Test.runTests(testData) 174