File 1-extra-test.patch of Package python-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/Pmw_1_3/tests/Test.py.~1.5.~	2007-08-06 02:23:16.000000000 +0200
+++ 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)
openSUSE Build Service is sponsored by