1import Tkinter 2import Test 3import Pmw 4 5Test.initialise() 6 7c = Pmw.Counter 8 9_myValidators = { 10 'hello' : (lambda s: s == 'hello', len), 11} 12 13kw_1 = { 14 'labelpos' : 'w', 15 'label_text' : 'Counter:', 16 'buttonaspect': 2.0, 17 'autorepeat': 0, 18 'initwait': 1000, 19 'padx': 5, 20 'pady': 5, 21 'repeatrate': 20, 22 'entryfield_value': 'First value', 23} 24tests_1 = ( 25 (c.pack, (), {'padx' : 10, 'pady' : 10, 'fill' : 'both', 'expand' : 1}), 26 (c.get, (), 'First value'), 27 (Test.num_options, (), 12), 28 ('Arrow_borderwidth', 10), 29 ('hull_background', 'yellow'), 30 ('Arrow_background', 'green'), 31 ('label_background', 'blue'), 32 ('hull_borderwidth', 10), 33 ('entryfield_command', Test.callback), 34 ('entryfield_errorbackground', 'red'), 35 ('hull_cursor', 'gumby'), 36 ('datatype', 'time'), 37 ('datatype', 'numeric'), 38 ('entry_borderwidth', 6), 39 ('entry_relief', 'raised'), 40 ('entry_exportselection', 0), 41 ('entry_foreground', 'blue'), 42 ('hull_highlightcolor', 'Red'), 43 ('hull_highlightthickness', 2), 44 ('increment', 1), 45 ('entry_insertbackground', 'Yellow'), 46 ('entry_insertbackground', 'Black'), 47 ('entry_insertborderwidth', 1), 48 ('entry_insertborderwidth', 0), 49 ('entry_insertofftime', 400), 50 ('entry_insertontime', 700), 51 ('entry_insertwidth', 3), 52 ('entryfield_invalidcommand', Test.callback), 53 ('entry_show', '*'), 54 ('entry_background', 'red'), 55 (c.setentry, '69', Pmw.OK), 56 ('entry_show', ''), 57 ('entry_justify', 'right'), 58 ('entry_justify', 'center'), 59 ('entry_justify', 'left'), 60 ('label_text', 'Label'), 61 ('entry_relief', 'raised'), 62 ('entry_relief', 'sunken'), 63 ('entry_state', 'disabled'), 64 ('entry_state', 'normal'), 65 ('entry_background', 'GhostWhite'), 66 ('entryfield_validate', 'alphabetic'), 67 ('entryfield_validate', 'numeric'), 68 ('entry_width', 30), 69 ('relief', 'bogus', 'KeyError: Unknown option "relief" for Counter'), 70 (c.invoke, (), 1), 71 (c.interior, (), Tkinter.Frame), 72 (c.increment, ()), 73 (c.get, (), '70'), 74 ('increment', 5), 75 (c.get, (), '70'), 76 (c.decrement, ()), 77 (c.get, (), '65'), 78 (c.insert, ('end', 2)), 79 (c.get, (), '652'), 80 (c.invoke, (), 1), 81 (c.clear, ()), 82 (c.get, (), ''), 83 (c.insert, ('end', 'Test String')), 84 (c.get, (), 'Test String'), 85 (c.delete, (0, 'end')), 86 (c.insert, ('end', 'Another Test')), 87 (c.icursor, 'end'), 88 (c.index, 'end', 12), 89 (c.selection_from, 0), 90 (c.selection_to, 'end'), 91 (c.xview, '3'), 92 (c.clear, ()), 93 (c.insert, ('end', '100')), 94 ('entryfield_validate', {'validator' : 'real', 'min' : 10}), 95 (c.setentry, '50', Pmw.OK), 96 (c.setentry, 'hello', Pmw.ERROR), 97 ('entryfield_extravalidators', _myValidators), 98 ('entryfield_validate', 'hello'), 99 (c.setentry, 'hello', Pmw.OK), 100 (c.setentry, 'foo', Pmw.ERROR), 101 (c.valid, (), 1), 102 (c.cget, 'entry_background', 'GhostWhite'), 103 ('entry_textvariable', Test.stringvar), 104 (c.checkentry, (), 0), 105 (c.cget, 'entry_background', 'red'), 106 ('entryfield_validate', {'validator' : 'date', 'format' : 'dmy'}), 107 (c.valid, (), 0), 108 ('datatype', {'counter' : 'date', 'format' : 'dmy', 'yyyy' : 1}), 109 (c.setentry, '22/12/1999', Pmw.OK), 110 ('increment', 10), 111 (c.increment, ()), 112 (c.get, (), '01/01/2000'), 113 114 ('entryfield_validate', {'validator' : 'time', 'min' : '10:00:00'}), 115 (c.valid, (), 0), 116 ('increment', 60*60), 117 ('datatype', {'counter' : 'time'}), 118 (c.setentry, '11:00:00', Pmw.OK), 119 (c.decrement, ()), 120 (c.get, (), '10:00:00'), 121 (c.decrement, ()), 122 (c.get, (), '10:00:00'), 123 124 ('entryfield_validate', {'validator' : 'time', 'separator' : '.'}), 125 (c.valid, (), 0), 126 ('datatype', {'counter' : 'time', 'separator' : '.'}), 127 (c.setentry, '11.00.00', Pmw.OK), 128 (c.decrement, ()), 129 (c.get, (), '10.00.00'), 130 131 ('entryfield_validate', {'validator' : 'date', 'format' : 'dmy'}), 132 (c.valid, (), 0), 133 ('increment', 1), 134 ('datatype', {'counter' : 'date', 'format' : 'dmy'}), 135 (c.setentry, '25/12/99', Pmw.OK), 136 (c.decrement, ()), 137 (c.get, (), '24/12/99'), 138 139 ('entryfield_validate', {'validator' : 'date', 'separator' : '#@!', 140 'max' : '99#@!12#@!26'}), 141 (c.valid, (), 0), 142 ('datatype', {'counter' : 'date', 'separator' : '#@!'}), 143 (c.setentry, '99#@!12#@!25', Pmw.OK), 144 (c.increment, ()), 145 (c.get, (), '99#@!12#@!26'), 146 ('increment', 10), 147 (c.increment, ()), 148 (c.get, (), '99#@!12#@!26'), # max exceeded 149 ('entryfield_validate', {'validator' : 'date', 'separator' : '#@!', 150 'max' : '00#@!01#@!10'}), 151 (c.increment, ()), 152 (c.get, (), '00#@!01#@!05'), # max not exceeded 153 ('increment', 1), 154 155 ('entryfield_validate', {'validator' : 'date', 'format' : 'ymd', 156 'separator' : '-' }), 157 (c.valid, (), 0), 158 ('datatype', {'counter' : 'date', 'format' : 'ymd', 'yyyy' : 1, 159 'separator' : '-' }), 160 (c.setentry, '1999-12-22', 1), 161 ('increment', 10), 162 (c.increment, ()), 163 (c.get, (), '2000-01-01'), 164 ('increment', 1), 165) 166 167tests_2 = ( 168 (c.pack, (), {'padx' : 10, 'pady' : 10}), 169) 170 171alltests = [(tests_1, kw_1)] 172 173poslist = ('nw', 'n', 'ne', 'en', 'e', 'es', 'se', 's', 'sw', 'ws', 'w', 'wn',) 174for count in range(len(poslist)): 175 pos = poslist[count] 176 margin = count * 10 177 kw_2 = { 178 'entry_width' : 12, 179 'labelpos' : pos, 180 'labelmargin' : margin, 181 'label_text' : 'Counter:', 182 } 183 alltests.append((tests_2, kw_2)) 184 185testData = ((c, alltests),) 186 187if __name__ == '__main__': 188 Test.runTests(testData) 189