Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aeszter
pmw
1-extra-test.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1-extra-test.patch of Package pmw
diff -ruN Pmw.1.3.2.orig/src/Pmw/Pmw_1_3/tests/Test.py.~1.5.~ Pmw.1.3.2/src/Pmw/Pmw_1_3/tests/Test.py.~1.5.~ --- Pmw.1.3.2.orig/src/Pmw/Pmw_1_3/tests/Test.py.~1.5.~ 2007-08-06 02:23:16.000000000 +0200 +++ Pmw.1.3.2/src/Pmw/Pmw_1_3/tests/Test.py.~1.5.~ 1970-01-01 01:00:00.000000000 +0100 @@ -1,521 +0,0 @@ -# Functions used by widget tests. - -import imp -import os -import re -import string -import sys -import traceback -import types -import Tkinter -import _tkinter - -if Tkinter.TkVersion >= 8.4: - refcountafterdestroy = 7 -else: - refcountafterdestroy = 6 - -script_name = imp.find_module(__name__)[1] -if not os.path.isabs(script_name): - script_name = os.path.join(os.getcwd(), script_name) - -while 1: - script_dir = os.path.dirname(script_name) - if not os.path.islink(script_name): - break - script_name = os.path.join(script_dir, os.readlink(script_name)) -script_dir = os.path.join(os.getcwd(), script_dir) -script_dir = os.path.normpath(script_dir) - -# Add the '../../..' directory to the path. -package_dir = os.path.dirname(script_dir) -package_dir = os.path.dirname(package_dir) -package_dir = os.path.dirname(package_dir) -sys.path[:0] = [package_dir] - -import Pmw -# Need to import TestVersion, rather than do its work here, since -# __name__ will be known there. -import TestVersion - -# Set this to 1 to generate tracebacks on exceptions, rather than -# catching them and continuing with the tests. -# This is useful for debugging the test scripts. -dont_even_try = 0 - -_delay = 1 -_verbose = 0 -_printTraceback = 0 -_initialised = 0 - -############################################################################## -# Public functions: - -rand = 12345 -def random(): - global rand - rand = (rand * 125) % 2796203 - return rand - -def initialise(): - global _initialised, font, flagup, earthris, emptyimage, \ - stringvar, floatvar, root, reliefs - if not _initialised: - root = Tkinter.Tk(className = 'PmwTest') - root.withdraw() - if os.name == 'nt': - size = 16 - else: - size = 12 - Pmw.initialise(root, size = size, fontScheme = 'pmw2') - font = {} - font['small'] = '6x13' - font['large'] = '10x20' - font['variable'] = '-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*' - flagup = Tkinter.BitmapImage(file = 'flagup.bmp') - earthris = Tkinter.PhotoImage(file = 'earthris.gif') - emptyimage = Tkinter.PhotoImage() - stringvar = Tkinter.StringVar() - stringvar.set('this is some text') - floatvar = Tkinter.DoubleVar() - floatvar.set(50.0) - if haveBlt(): - global vectorSize, vector_x, vector_y - vector_x = Pmw.Blt.Vector() - vector_y = [] - for y in range(3): - vector_y.append(Pmw.Blt.Vector()) - vectorSize = 50 - for index in range(vectorSize): - vector_x.append(index) - vector_y[0].append(random() % 100) - vector_y[1].append(random() % 200) - vector_y[2].append(random() % 100 + 300) - - # "solid" relief type was added to 8.0 - if Tkinter.TkVersion >= 8.0: - reliefs = 'flat, groove, raised, ridge, solid, or sunken' - else: - reliefs = 'flat, groove, raised, ridge, or sunken' - - _initialised = 1 - -def haveBlt(): - return Pmw.Blt.haveblt(root) - -def bell(): - root.bell() - -def setdelay(newdelay): - global _delay - _delay = newdelay - -def setverbose(newverbose): - global _verbose - _verbose = newverbose - -def printtraceback(newprintTraceback = 1): - global _printTraceback - _printTraceback = newprintTraceback - -def num_options(widget): - return len(widget.configure()) - -def callback(): - return 1 - -def callback1(dummy): - # Callback taking 1 argument - return dummy - -def callback2(dummy1, dummy2): - # Callback taking 2 arguments - return (dummy1, dummy2) - -def callbackN(*args): - # Callback taking zero or more arguments - return args - -def actioncallback(): - w = currentWidget() - w.action('button press') - -def currentWidget(): - return _currentWidget - -def delay(): - return _delay - -def set_geom(width, height): - _currentToplevel.geometry(str(width) + 'x' + str(height)) - -def runTests(allTestData): - root.after(_delay, _runTest, None, None, allTestData, 0, -1, -1) - root.mainloop() - -_pattern = None - -############################################################################## -# Private functions: - -def _print_results(result, expected, description): - if type(expected) == types.ClassType: - if hasattr(result, '__class__'): - ok = (result.__class__ == expected) - else: - ok = 0 - else: - ok = (result == expected) - - # Megawidgets return a value of the correct type. Tk widgets - # always return a string, so convert the string and check again. - if not ok: - if type(expected) == types.InstanceType: - if result == str(expected) and ( - expected is earthris or expected is stringvar or - expected is floatvar or expected is flagup): - ok = 1 - elif hasattr(_tkinter, 'Tcl_Obj') and \ - type(result) == _tkinter.Tcl_Obj: - ok = (str(stringvar) == result.string) - elif type(expected) == types.IntType: - if type(result) is types.StringType: - try: - ok = (string.atoi(result) == expected) - except ValueError: - pass - elif hasattr(_tkinter, 'Tcl_Obj') and \ - type(result) == _tkinter.Tcl_Obj: - ok = (string.atoi(str(result)) == expected) - elif type(expected) == types.FloatType: - if type(result) is types.StringType: - try: - ok = (string.atof(result) == expected) - except ValueError: - pass - elif expected == callback: - ok = re.search('^[0-9]*callback$', str(result)) is not None - elif expected == callback1: - ok = re.search('^[0-9]*callback1$', str(result)) is not None - elif expected == callback2: - ok = re.search('^[0-9]*callback2$', str(result)) is not None - elif expected == actioncallback: - ok = re.search('^[0-9]*actioncallback$',str(result)) is not None - - if not ok or _verbose > 0: - print '====', description - if not ok or _verbose > 1: - print '==== result was:' - print result, type(result) - if ok: - if _verbose > 1: - print '++++ PASSED' - else: - print '---- result should have been:' - print expected, type(expected) - if _printTraceback: - traceback.print_exc() - print '---- FAILED' - print - -def _destroyToplevel(top, title): - if _verbose > 0: - print '==== destruction of Toplevel for', title - top.destroy() - -def _Toplevel(title): - if _verbose > 0: - print '==== construction of Toplevel for', title - top = Tkinter.Toplevel() - top.geometry('+100+100') - top.title(title) - return top - -def _constructor(isWidget, top, classCmd, kw): - if _verbose > 0: - print '====', classCmd.__name__, 'construction' - if isWidget: - if dont_even_try: - w = apply(classCmd, (top,), kw) - else: - try: - w = apply(classCmd, (top,), kw) - except: - print 'Could not construct', classCmd.__name__ - traceback.print_exc() - print 'Can not continue' - print 'Bye' - return None - - isMegaWidget = hasattr(classCmd, 'defineoptions') - # Check the option types: - options = w.configure() - option_list = options.keys() - option_list.sort() - for option in option_list: - # Some of the options (like bd, bg and fg) have only two parts - # and are just abbreviations. Only check 'real' options. - if len(options[option]) == 5: - initoption = isMegaWidget and w.isinitoption(option) - if dont_even_try: - value = w.cget(option) - if option not in ('class', 'container') and not initoption: - apply(w.configure, (), {option : value}) - newvalue = w.cget(option) - if newvalue != value: - print '====', classCmd.__name__, 'widget', \ - '\'' + option + '\'', 'option' - print '---- setting option returns different value' - print '==== new value was:' - print newvalue, type(newvalue) - print '---- set value was:' - print value, type(value) - print '---- FAILED' - print - else: - try: - value = w.cget(option) - if option not in ('class', 'container') and not initoption: - try: - apply(w.configure, (), {option : value}) - newvalue = w.cget(option) - if hasattr(_tkinter, 'Tcl_Obj') and \ - ( - (type(newvalue) == _tkinter.Tcl_Obj - and str(newvalue) != str(value)) - or - (type(newvalue) != _tkinter.Tcl_Obj - and newvalue != value) - ) or \ - ( - not hasattr(_tkinter, 'Tcl_Obj') and - newvalue != value - ): - print '====', classCmd.__name__, 'widget', \ - '\'' + option + '\'', 'option' - print '---- setting option returns different value' - print '==== new value was:' - print `newvalue`, type(newvalue) - print '---- set value was:' - print `value`, type(value) - print '---- FAILED' - print - except: - print '====', classCmd.__name__, 'widget', \ - '\'' + option + '\'', 'option' - print '---- could not set option' - print '---- FAILED' - print - except KeyError: - print '====', classCmd.__name__, 'widget', \ - '\'' + option + '\'', 'option' - print '---- unknown option' - print '---- FAILED' - print - - if hasattr(classCmd, 'geometry'): - w.geometry('+100+100') - w.title(classCmd.__name__) - else: - w = apply(classCmd, (), kw) - return w - -def _destructor(widget, isWidget): - if _verbose > 0: - print '====', widget.__class__.__name__, 'destruction' - if isWidget: - if dont_even_try: - widget.destroy() - else: - try: - widget.destroy() - ref = sys.getrefcount(widget) - if ref != refcountafterdestroy: - print '====', widget.__class__.__name__, 'destructor' - print '---- refcount', ref, 'not zero after destruction' - print '---- FAILED' - print - except: - print 'Could not destroy', widget.__class__.__name__ - traceback.print_exc() - print 'Can not continue' - print 'Bye' - return None - return 1 - -# Structure of allTestData: -# ( -# ( -# 'ButtonBox', -# ( -# ( -# Pmw.ButtonBox, -# {}, -# ( -# (c.pack, ()), -# (c.pack, ()), -# (c.pack, ()), -# ... -# ) -# ), -# ( -# Pmw.ButtonBox, -# {}, -# ( -# (c.pack, ()), -# (c.pack, ()), -# (c.pack, ()), -# ... -# ) -# ), -# ... -# ) -# ), -# ( -# 'ButtonBox', -# ( -# ( -# Pmw.ButtonBox, -# {}, -# ( -# (c.pack, ()), -# (c.pack, ()), -# (c.pack, ()), -# ... -# ) -# ), -# ( -# Pmw.ButtonBox, -# {}, -# ( -# (c.pack, ()), -# (c.pack, ()), -# (c.pack, ()), -# ... -# ) -# ), -# ... -# ) -# ), -# ... -# ) - -def _runTest(top, w, allTestData, index0, index1, index2): - if index0 >= len(allTestData): - root.quit() - return - classCmd, fileTests = allTestData[index0] - if classCmd == Tkinter.Menu: - isToplevel = 1 - else: - isToplevel = hasattr(classCmd, 'userdeletefunc') - isWidget = hasattr(classCmd, 'cget') - title = classCmd.__name__ - - if index1 == -1: - if isToplevel: - top = None - else: - top = _Toplevel(title) - global _currentToplevel - _currentToplevel = top - index1 = 0 - elif index1 >= len(fileTests): - if not isToplevel: - _destroyToplevel(top, title) - index1 = -1 - index0 = index0 + 1 - else: - methodTests, kw = fileTests[index1] - if index2 == -1: - w = _constructor(isWidget, top, classCmd, kw) - if w is None: - root.quit() - return - global _currentWidget - _currentWidget = w - index2 = 0 - elif index2 >= len(methodTests): - if _destructor(w, isWidget) is None: - root.quit() - return - index2 = -1 - index1 = index1 + 1 - else: - methodTestData = methodTests[index2] - if type(methodTestData[0]) == types.StringType: - _configureTest(w, methodTestData) - else: - _methodTest(w, methodTestData) - index2 = index2 + 1 - root.update() - root.after(_delay, _runTest, top, w, allTestData, index0, index1, index2) - -def _configureTest(w, testData): - option = testData[0] - value = testData[1] - if dont_even_try: - apply(w.configure, (), {option: value}) - result = w.cget(option) - else: - try: - apply(w.configure, (), {option: value}) - result = w.cget(option) - except: - result = _getErrorValue() - if len(testData) > 2: - expected = testData[2] - else: - expected = value - _print_results(result, expected, \ - w.__class__.__name__ + ' option ' + str(testData)) - -def _getErrorValue(): - exc_type, exc_value, exc_traceback = sys.exc_info() - if type(exc_type) == types.ClassType: - # Handle python 1.5 class exceptions. - exc_type = exc_type.__name__ - if type(exc_value) == types.StringType: - return exc_type + ': ' + exc_value - else: - exc_value_str = str(exc_value) - if exc_value_str[:1] == "'" and exc_value_str[-1:] == "'": - exc_value_str = exc_value_str[1:-1] - return exc_type + ': ' + exc_value_str - -def _methodTest(w, testData): - func = testData[0] - args = testData[1] - kw = {} - expected = None - if len(testData) == 3: - if type(testData[2]) == types.DictionaryType: - kw = testData[2] - else: - expected = testData[2] - elif len(testData) > 3: - kw = testData[2] - expected = testData[3] - if type(args) != types.TupleType: - args = (args,) - if func is num_options: - args = (w,) + args - origArgs = args - if type(func) == types.MethodType and func.im_self is None: - args = (w,) + args - if dont_even_try: - result = apply(func, args, kw) - else: - try: - result = apply(func, args, kw) - except: - result = _getErrorValue() - if hasattr(func, 'im_func'): - name = w.__class__.__name__ + ' method ' + \ - func.im_func.func_code.co_name - else: - name = 'function ' + func.__name__ - name = name + ' ' + str(origArgs) - if kw: - name = name + ' ' + str(kw) - _print_results(result, expected, name)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor