mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 10:52:49 +00:00
359 lines
16 KiB
Python
359 lines
16 KiB
Python
#!/usr/bin/env krosstest
|
|
# -*- coding: utf-8 -*-
|
|
# coding: utf-8
|
|
|
|
"""
|
|
This Python script is used to test the Kross scripting framework.
|
|
"""
|
|
|
|
import unittest
|
|
import TestObject1
|
|
from TestObject2 import *
|
|
|
|
KrossAction = self
|
|
|
|
def testFunction(*args):
|
|
return args
|
|
|
|
def testFunctionException(*args):
|
|
raise Exception()
|
|
return args
|
|
|
|
class TestKross(unittest.TestCase):
|
|
""" Testcases to test the Kross python functionality for regressions. """
|
|
|
|
def setUp(self):
|
|
self.object1 = TestObject1
|
|
self.object2 = TestObject2
|
|
|
|
def testBool(self):
|
|
self.assert_( self.object1.func_bool_bool(True) == True )
|
|
self.assert_( self.object1.func_bool_bool(False) == False )
|
|
|
|
def testInt(self):
|
|
self.assert_( self.object1.func_int_int(0) == 0 )
|
|
self.assert_( self.object1.func_int_int(177321) == 177321 )
|
|
self.assert_( self.object1.func_int_int(-98765) == -98765 )
|
|
|
|
def testUInt(self):
|
|
self.assert_( self.object1.func_uint_uint(0) == 0 )
|
|
self.assert_( self.object1.func_uint_uint(177321) == 177321 )
|
|
#self.assertRaises(OverflowError, self.object1.func_uint_uint, -1)
|
|
|
|
def testDouble(self):
|
|
self.assert_( self.object1.func_double_double(0.0) == 0.0 )
|
|
self.assert_( self.object1.func_double_double(1773.2177) == 1773.2177 )
|
|
self.assert_( self.object1.func_double_double(-548993.271993) == -548993.271993 )
|
|
|
|
def testLongLong(self):
|
|
self.assert_( self.object1.func_qlonglong_qlonglong(0) == 0 )
|
|
self.assert_( self.object1.func_qlonglong_qlonglong(7379) == 7379 )
|
|
self.assert_( self.object1.func_qlonglong_qlonglong(-6384673) == -6384673 )
|
|
#self.assert_( self.object1.func_qlonglong_qlonglong(678324787843223472165) == 678324787843223472165 )
|
|
|
|
def testULongLong(self):
|
|
self.assert_( self.object1.func_qulonglong_qulonglong(0) == 0 )
|
|
self.assert_( self.object1.func_qulonglong_qulonglong(378972) == 378972 )
|
|
#self.assert_( self.object1.func_qulonglong_qulonglong(-8540276823902375665225676321823) == -8540276823902375665225676321823 )
|
|
|
|
def testByteArray(self):
|
|
self.assert_( self.object1.func_qbytearray_qbytearray(" Some String as ByteArray ") == " Some String as ByteArray " )
|
|
self.assert_( self.object1.func_qbytearray_qbytearray(" \0\n\r\t\s\0 test ") == " \0\n\r\t\s\0 test " )
|
|
|
|
def testString(self):
|
|
self.assert_( self.object1.func_qstring_qstring(None) == None )
|
|
self.assert_( self.object1.func_qstring_qstring("") == "" )
|
|
self.assert_( self.object1.func_qstring_qstring(" ") == " " )
|
|
self.assert_( self.object1.func_qstring_qstring(" Another \n\r Test! $%&\" ") == " Another \n\r Test! $%&\" " )
|
|
self.assert_( self.object1.func_qstring_qstring("áêïòñα") == "áêïòñα" )
|
|
self.assert_( self.object1.func_qstring_qstring(unicode("abcdef")) == "abcdef" )
|
|
self.assert_( self.object1.func_qstring_qstring(u"\u03B1") == u"\u03B1".encode('utf8') )
|
|
|
|
def testStringList(self):
|
|
self.assert_( self.object1.func_qstringlist_qstringlist( [] ) == [] )
|
|
self.assert_( self.object1.func_qstringlist_qstringlist( ["string1"] ) == ["string1"] )
|
|
self.assert_( self.object1.func_qstringlist_qstringlist( [" string1","string2 "] ) == [" string1","string2 "] )
|
|
|
|
def testVariantList(self):
|
|
self.assert_( self.object1.func_qvariantlist_qvariantlist( [] ) == [] )
|
|
self.assert_( self.object1.func_qvariantlist_qvariantlist( [[[[]],[]]] ) == [[[[]],[]]] )
|
|
self.assert_( self.object1.func_qvariantlist_qvariantlist( ["A string",[17539,-8591],[5.32,-842.775]] ) == ["A string",[17539,-8591],[5.32,-842.775]] )
|
|
self.assert_( self.object1.func_qvariantlist_qvariantlist( [[True,[],False,"Other String"],"test"] ) == [[True,[],False,"Other String"],"test"] )
|
|
self.assert_( self.object1.func_qvariantlist_qvariantlist( [[17,52],[],{},[84.21,936.821]] ) == [[17,52],[],{},[84.21,936.821]] )
|
|
|
|
l = TestObject1.func_qobject2qvariantlist(TestObject2)
|
|
self.assert_( l[0] == TestObject2 )
|
|
self.assert_( TestObject1.func_qvariantlist2qobject(l) == TestObject2 )
|
|
|
|
def testVariantMap(self):
|
|
|
|
def doTestVariantMap(vmap):
|
|
rmap = self.object1.func_qvariantmap_qvariantmap( vmap )
|
|
self.assert_( len(rmap) == len(vmap) )
|
|
for k in vmap:
|
|
#self.assert_( rmap.has_key(k) )
|
|
self.assert_( rmap[k] == vmap[k] )
|
|
|
|
doTestVariantMap( {} )
|
|
doTestVariantMap( {"3":-837,"1":73682,"2":285} )
|
|
doTestVariantMap( {"c":84.24,"a":-6892.957,"d":2.02,"b":692.66} )
|
|
doTestVariantMap( {"key1":True,"key2":False} )
|
|
doTestVariantMap( {"key 2":" Some String ","key 3":"oThEr StRiNg"} )
|
|
doTestVariantMap( {" key4 ":[12.5,True]," key5 ":[83.002,"test"]} )
|
|
doTestVariantMap( {' key7 ':{},' key6 ':{}} )
|
|
|
|
def testSize(self):
|
|
self.assert_( self.object1.func_qsize_qsize( [0,0] ) == [0,0] )
|
|
self.assert_( self.object1.func_qsize_qsize( [12,-94] ) == [12,-94] )
|
|
self.assert_( self.object1.func_qsize_qsize( [-7264,6224] ) == [-7264,6224] )
|
|
|
|
def testSizeF(self):
|
|
self.assert_( self.object1.func_qsizef_qsizef( [0.0,0.0] ) == [0.0,0.0] )
|
|
self.assert_( self.object1.func_qsizef_qsizef( [-956.0,75.0] ) == [-956.0,75.0] )
|
|
self.assert_( self.object1.func_qsizef_qsizef( [-14.21,-535.0] ) == [-14.21,-535.0] )
|
|
self.assert_( self.object1.func_qsizef_qsizef( [26,-525] ) == [26,-525] )
|
|
self.assert_( self.object1.func_qsizef_qsizef( [-956.0,75.21] ) == [-956.0,75.21] )
|
|
|
|
def testPoint(self):
|
|
self.assert_( self.object1.func_qpoint_qpoint( [0,0] ) == [0,0] )
|
|
self.assert_( self.object1.func_qpoint_qpoint( [12,-94] ) == [12,-94] )
|
|
self.assert_( self.object1.func_qpoint_qpoint( [-7264,6224] ) == [-7264,6224] )
|
|
|
|
def testPointF(self):
|
|
self.assert_( self.object1.func_qpointf_qpointf( [0.0,0.0] ) == [0.0,0.0] )
|
|
self.assert_( self.object1.func_qpointf_qpointf( [-956.0,751.0] ) == [-956.0,751.0] )
|
|
self.assert_( self.object1.func_qpointf_qpointf( [-82.3172,17.0] ) == [-82.3172,17.0] )
|
|
self.assert_( self.object1.func_qpointf_qpointf( [1.2,2.3] ) == [1.2,2.3] )
|
|
self.assert_( self.object1.func_qpointf_qpointf( [-956.03,751.4165] ) == [-956.03,751.4165] )
|
|
|
|
def testRect(self):
|
|
self.assert_( self.object1.func_qrect_qrect( [0,0,0,0] ) == [0,0,0,0] )
|
|
self.assert_( self.object1.func_qrect_qrect( [-1,-2,3,4] ) == [-1,-2,3,4] )
|
|
self.assert_( self.object1.func_qrect_qrect( [1,2,-3,-4] ) == [1,2,-3,-4] )
|
|
self.assert_( self.object1.func_qrect_qrect( [-10,-20,30,40] ) == [-10,-20,30,40] )
|
|
self.assert_( self.object1.func_qrect_qrect( [10,20,30,40] ) == [10,20,30,40] )
|
|
self.assert_( self.object1.func_qrect_qrect( [10,20,-30,-40] ) == [10,20,-30,-40] )
|
|
|
|
def testRectF(self):
|
|
self.assert_( self.object1.func_qrectf_qrectf( [0.0,0.0,0.0,0.0] ) == [0.0,0.0,0.0,0.0] )
|
|
self.assert_( self.object1.func_qrectf_qrectf( [-1.0,-2.0,3.0,4.0] ) == [-1.0,-2.0,3.0,4.0] )
|
|
self.assert_( self.object1.func_qrectf_qrectf( [-1.1,-2.2,3.3,4.4] ) == [-1.1,-2.2,3.3,4.4] )
|
|
|
|
def testUrl(self):
|
|
self.assert_( self.object1.func_qurl_qurl(None) == None )
|
|
#self.assert_( self.object1.func_qurl_qurl("") == "" )
|
|
self.assert_( self.object1.func_qurl_qurl("/home/myuser") == "/home/myuser" )
|
|
self.assert_( self.object1.func_qurl_qurl("file:///home/myuser/myfile.txt") == "file:///home/myuser/myfile.txt" )
|
|
self.assert_( self.object1.func_qurl_qurl("http://myname:mypass@kross.dipe.org?404.cgi?test=123&test2=456") == "http://myname:mypass@kross.dipe.org?404.cgi?test=123&test2=456" )
|
|
self.assert_( self.object1.func_kurl_kurl("http://www.kde.org/whatiskde/") == "http://www.kde.org/whatiskde/" )
|
|
self.assert_( self.object1.func_kurl_qstring("http://www.kde.org/whatiskde/") == None )
|
|
|
|
def testColor(self):
|
|
self.assert_( self.object1.func_qcolor_qcolor(None) == None )
|
|
self.assert_( self.object1.func_qcolor_qcolor("") == None )
|
|
self.assert_( self.object1.func_qcolor_qcolor("#0066ff") == "#0066ff" )
|
|
#self.assert_( self.object1.func_qcolor_qcolor((0,0,255)) == "#0000ff" )
|
|
#self.assert_( self.object1.func_qcolor_qcolor((0.0,0.0,1.0)) == "#0000ff" )
|
|
|
|
##self.object1.func_qtime_qtime
|
|
##self.object1.func_qdate_qdate
|
|
|
|
def testVariant(self):
|
|
self.assert_( self.object1.func_qvariant_qvariant(0.0) == 0.0 )
|
|
self.assert_( self.object1.func_qvariant_qvariant(True) == True )
|
|
self.assert_( self.object1.func_qvariant_qvariant(False) == False )
|
|
self.assert_( self.object1.func_qvariant_qvariant(187937) == 187937 )
|
|
self.assert_( self.object1.func_qvariant_qvariant(-69825) == -69825 )
|
|
self.assert_( self.object1.func_qvariant_qvariant(8632.274) == 8632.274 )
|
|
self.assert_( self.object1.func_qvariant_qvariant(-8632.351) == -8632.351 )
|
|
self.assert_( self.object1.func_qvariant_qvariant(" Test \n\r This String $%&\"") == " Test \n\r This String $%&\"")
|
|
|
|
def testFunctions(self):
|
|
self.assert_( "testFunction" in KrossAction.functionNames() )
|
|
self.assert_( KrossAction.callFunction("testFunction",[]) == [] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[True,False]) == [True,False] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[524,-958]) == [524,-958] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[524.98,-958.1257]) == [524.98,-958.1257] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[""," Some\nString "]) == [""," Some\nString "] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[["one",23,"two",None,False]]) == [["one",23,"two",None,False]] )
|
|
self.assert_( KrossAction.callFunction("testFunction",[KrossAction]) == [KrossAction] )
|
|
|
|
def testObject(self):
|
|
self.assert_( self.object1.name() == "TestObject1" and self.object2.name() == "TestObject2" )
|
|
self.assert_( self.object1.objectName == "TestObject1" and self.object2.objectName == "TestObject2" )
|
|
self.assert_( self.object1.className() == "TestObject" and self.object2.className() == "TestObject" )
|
|
self.assert_( self.object1.__toPointer__() )
|
|
self.assert_( self.object1 * 2 == self.object1.__toPointer__() * 2 )
|
|
|
|
self.assert_( self.object1.func_qobject_qobject(True) == None )
|
|
self.assert_( self.object1.func_qobject_qobject("String") == None )
|
|
self.assert_( self.object1.func_qobject_qobject(None) == None )
|
|
|
|
self.assert_( self.object1["TestTimer"].objectName == "TestTimer" )
|
|
|
|
def testPropertyMembers(self):
|
|
self.object1.boolProperty = True
|
|
self.assert_( self.object1.boolProperty == True )
|
|
self.object1.boolProperty = False
|
|
self.assert_( self.object1.boolProperty == False )
|
|
|
|
self.object1.intProperty = 20
|
|
self.assert_( self.object1.intProperty == 20 )
|
|
|
|
self.object1.doubleProperty = 7436.671
|
|
self.assert_( self.object1.doubleProperty == 7436.671 )
|
|
|
|
self.object1.stringProperty = " SoMe StRiNg "
|
|
self.assert_( self.object1.stringProperty == " SoMe StRiNg " )
|
|
|
|
self.object1.stringListProperty = [ "TestString", " Other String " ]
|
|
self.assert_( self.object1.stringListProperty == [ "TestString", " Other String " ] )
|
|
|
|
self.object1.listProperty = [ True, [2464, -8295], -572.07516, "test", [] ]
|
|
self.assert_( self.object1.listProperty == [ True, [2464, -8295], -572.07516, "test", [] ] )
|
|
|
|
def testPropertyMethods(self):
|
|
self.object1.setProperty("boolProperty", False)
|
|
self.assert_( self.object1.property("boolProperty") == False )
|
|
self.object1.setProperty("boolProperty", True)
|
|
self.assert_( self.object1.property("boolProperty") == True )
|
|
|
|
self.object1.setProperty("intProperty", -75825)
|
|
self.assert_( self.object1.property("intProperty") == -75825 )
|
|
|
|
self.object1.setProperty("doubleProperty", -9373.8721)
|
|
self.assert_( self.object1.property("doubleProperty") == -9373.8721 )
|
|
|
|
self.object1.setProperty("stringProperty", " AnOtHeR sTrInG ")
|
|
self.assert_( self.object1.property("stringProperty") == " AnOtHeR sTrInG " )
|
|
|
|
self.object1.setProperty("stringListProperty", ["s1","s2",""])
|
|
self.assert_( self.object1.property("stringListProperty") == ["s1","s2",""] )
|
|
|
|
self.object1.setProperty("listProperty", [[True,False],"abc",[846,-573.02],[]])
|
|
self.assert_( self.object1.property("listProperty") == [[True,False],"abc",[846,-573.02],[]] )
|
|
|
|
def testDynamicProperties(self):
|
|
self.assert_( self.object1.property("dynamicProperty") == ["Some String",99] )
|
|
self.object1.setProperty("newDynamicProperty","New Dynamic Property")
|
|
self.assert_( self.object1.property("newDynamicProperty") == "New Dynamic Property" )
|
|
|
|
def testEnumerationMembers(self):
|
|
self.assert_( self.object1.TESTENUM1 == 1 )
|
|
self.assert_( self.object1.TESTENUM2 == 2 )
|
|
self.assert_( self.object1.TESTENUM3 == 4 )
|
|
self.assert_( self.object1.TESTENUM4 == 8 )
|
|
#self.assert_( self.object1.testEnum( self.object1.TESTENUM3 ) == 4 )
|
|
|
|
def testSignalsSlots(self):
|
|
self.assert_( self.object1.connect("signalBool(bool)", "func_bool_bool(bool)") )
|
|
self.assert_( self.object1.connect("signalInt(int)", self.object2, "func_int_int(int)") )
|
|
|
|
def callback1(obj):
|
|
self.assert_(obj.name() == "TestObject2")
|
|
return "CALLBACK1!"
|
|
self.assert_( self.object1.connect("signalObject(QObject*)", callback1) )
|
|
self.object1.signalObject(self.object2)
|
|
|
|
def callback2(s):
|
|
self.assert_(s == " The Argument String ")
|
|
return "CALLBACK2!"
|
|
self.assert_( self.object1.connect("signalString(const QString&)", callback2) )
|
|
self.object1.signalString(" The Argument String ")
|
|
|
|
self.assert_( self.object1.name() == "TestObject1" )
|
|
self.assert_( self.object2.name() == "TestObject2" )
|
|
|
|
#def testExpectedFailures(self):
|
|
# to less arguments
|
|
#self.assertRaises(ValueError, self.pluginobject1.uintfunc)
|
|
#self.assert_( self.pluginobject1.uintfunc() != 8465 )
|
|
|
|
#def testPyQt(self):
|
|
#pyqtextension = TestObject3.toPyQt()
|
|
#print "pyqtextension=%s" % pyqtextension
|
|
#import PyQt4, sip
|
|
#qobj = pyqtextension.getQObject()
|
|
#qo = sip.wrapinstance (qobj, QObject)
|
|
#print ">>>>>>>>>>>>>>>>>>> %s" % qo
|
|
|
|
def testPyQtSignal(self):
|
|
try:
|
|
from PyQt4 import QtCore, Qt
|
|
import string
|
|
version = string.split(QtCore.PYQT_VERSION_STR, ".")
|
|
if map(int, version) < [4, 5]:
|
|
print "PyQt4 version (", QtCore.PYQT_VERSION_STR, ") is lower than 4.5, skipping test"
|
|
return
|
|
except:
|
|
print "PyQt4 wasn't found, skipping test"
|
|
return
|
|
|
|
class PyQtObject(Qt.QObject):
|
|
customSignal = QtCore.pyqtSignal()
|
|
|
|
pyQtObject = PyQtObject()
|
|
self.object1.connectCallTestFunction(KrossAction, pyQtObject, "customSignal()")
|
|
pyQtObject.customSignal.emit()
|
|
|
|
self.assert_( self.object1.testFunctionReturnedValue() == [42] )
|
|
|
|
def testPyQtSignalException(self):
|
|
try:
|
|
from PyQt4 import QtCore, Qt
|
|
import string
|
|
version = string.split(QtCore.PYQT_VERSION_STR, ".")
|
|
if map(int, version) < [4, 5]:
|
|
print "PyQt4 version (", QtCore.PYQT_VERSION_STR, ") is lower than 4.5, skipping test"
|
|
return
|
|
except:
|
|
print "PyQt4 wasn't found, skipping test"
|
|
return
|
|
|
|
class PyQtObject(Qt.QObject):
|
|
customSignal = QtCore.pyqtSignal()
|
|
|
|
pyQtObject = PyQtObject()
|
|
self.object1.connectCallTestFunctionException(KrossAction, pyQtObject, "customSignal()")
|
|
pyQtObject.customSignal.emit()
|
|
|
|
self.assert_( self.object1.testFunctionReturnedValue() == None )
|
|
|
|
def testClass(self):
|
|
class MyClass:
|
|
def __init__(self, result):
|
|
self.result = result
|
|
def myMethod(self):
|
|
return self.result
|
|
s = "my string"
|
|
myclass = MyClass(s)
|
|
self.assert_( self.object1.call_krossobject_method(myclass, "myMethod") == s )
|
|
|
|
def testOtherObject(self):
|
|
otherobj1 = self.object1.func_otherobject("OtherObject1")
|
|
otherobj2 = self.object1.func_otherobject("OtherObject2")
|
|
#print "otherobj1=%s otherobj1.objectName=%s dir(otherobj1)=%s" % (otherobj1, otherobj1.objectName, dir(otherobj1))
|
|
|
|
self.assert_( otherobj1.objectName == "OtherObject1_wrapper" )
|
|
self.assert_( otherobj2.parentObject().objectName == "OtherObject2" )
|
|
self.assert_( self.object1.func_otherobject_otherobject(otherobj1).objectName == otherobj1.objectName )
|
|
|
|
l = self.object1.func_otherobjectlist_otherobjectlist( [otherobj1,otherobj2] )
|
|
self.assert_( len(l) == 2 )
|
|
self.assert_( l[0].objectName == "OtherObject1_wrapper" )
|
|
self.assert_( l[1].parentObject().objectName == "OtherObject2" )
|
|
|
|
def testEvaluation(self):
|
|
self.assert_( KrossAction.evaluate("1+2") == 3 )
|
|
self.assert_( KrossAction.evaluate("testFunction(None,99)") == [None,99] )
|
|
|
|
print "__name__ = %s" % __name__
|
|
#print "__main__ = %s %s" % (__main__,dir(__main__))
|
|
#print "TestObject3.name = %s" % TestObject3.name()
|
|
|
|
suite = unittest.makeSuite(TestKross)
|
|
unittest.TextTestRunner(verbosity=2).run(suite)
|
|
|
|
#import Kross, TestObject1
|
|
#print "===========> %s" % TestObject1.func_qsize_qsize( [12,-94] )
|
|
#print "===========> %s" % TestObject1.func_qsizef_qsizef( [12.2,-94.2] )
|