aboutsummaryrefslogtreecommitdiff
path: root/tests/GenerateSipBindings/testscript.py
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2016-04-23 17:24:11 +0200
committerStephen Kelly <steveire@gmail.com>2016-10-31 15:38:08 +0000
commit64eb5f8e1320feb78c56ec0acb7399ee6085770d (patch)
tree6ced89f400b6f4208fb5ad2fbd8501a20f1751bd /tests/GenerateSipBindings/testscript.py
parente052fc95db845a5e0f0b450c8fbffb35f0bbc638 (diff)
downloadextra-cmake-modules-64eb5f8e1320feb78c56ec0acb7399ee6085770d.tar.gz
extra-cmake-modules-64eb5f8e1320feb78c56ec0acb7399ee6085770d.tar.bz2
Add the PythonModuleGeneration module
This can be used by KF5 libraries to generate python 2 and 3 bindings.
Diffstat (limited to 'tests/GenerateSipBindings/testscript.py')
-rw-r--r--tests/GenerateSipBindings/testscript.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/GenerateSipBindings/testscript.py b/tests/GenerateSipBindings/testscript.py
new file mode 100644
index 00000000..6f2132a2
--- /dev/null
+++ b/tests/GenerateSipBindings/testscript.py
@@ -0,0 +1,87 @@
+
+import sys
+
+from PyQt5 import QtCore
+
+sys.path.append(sys.argv[1])
+
+import PyTest.CppLib
+
+mo = PyTest.CppLib.MyObject()
+
+assert(mo.addThree(39) == 42)
+
+assert(mo.addThree([38, 39, 40]) == [41, 42, 43])
+
+assert(mo.addThree("SomeString") == "DefaultSomeStringThree")
+
+assert(mo.findNeedle(["One", "Two", "Three"], "Two") == 1)
+assert(mo.findNeedle(["One", "Two", "Three"], "Four") == -1)
+assert(mo.findNeedle(["One", "Two", "Three"], "Th") == 2)
+assert(mo.findNeedle(["One", "Two", "Three"], "Th", QtCore.Qt.MatchExactly) == -1)
+
+assert(mo.const_parameters(30) == 15)
+assert(mo.const_parameters(30, mo) == 10)
+
+assert(mo.qtEnumTest(QtCore.Qt.MatchContains | QtCore.Qt.MatchStartsWith) == 3)
+assert(mo.localEnumTest(PyTest.CppLib.MyObject.Val2) == 2)
+
+class Reactor(QtCore.QObject):
+ def __init__(self, obj):
+ QtCore.QObject.__init__(self)
+ self.gotPrivateSlotCalledSignal = False
+ self.gotProtectedSlotCalledSignal = False
+ self.gotPublicSlotCalledSignal = False
+
+ obj.privateSlotCalled.connect(self.react_to_privateSlotCalled)
+ obj.protectedSlotCalled.connect(self.react_to_protectedSlotCalled)
+ obj.publicSlotCalled.connect(self.react_to_publicSlotCalled)
+
+ def react_to_privateSlotCalled(self):
+ self.gotPrivateSlotCalledSignal = True
+
+ def react_to_protectedSlotCalled(self):
+ self.gotProtectedSlotCalledSignal = True
+
+ def react_to_publicSlotCalled(self):
+ self.gotPublicSlotCalledSignal = True
+
+class Emitter(QtCore.QObject):
+ privateTrigger = QtCore.pyqtSignal()
+ protectedTrigger = QtCore.pyqtSignal()
+ publicTrigger = QtCore.pyqtSignal()
+
+ def __init__(self, obj):
+ QtCore.QObject.__init__(self)
+ self.privateTrigger.connect(obj.privateSlot1)
+ self.protectedTrigger.connect(obj.protectedSlot1)
+ self.publicTrigger.connect(obj.publicSlot1)
+
+ def emitSignalForPublic(self):
+ self.publicTrigger.emit()
+
+ def emitSignalForPrivate(self):
+ self.privateTrigger.emit()
+
+ def emitSignalForProtected(self):
+ self.protectedTrigger.emit()
+
+e = Emitter(mo)
+
+r = Reactor(mo)
+
+assert(not r.gotPrivateSlotCalledSignal)
+assert(not r.gotProtectedSlotCalledSignal)
+assert(not r.gotPublicSlotCalledSignal)
+
+e.emitSignalForPrivate()
+
+assert(r.gotPrivateSlotCalledSignal)
+
+e.emitSignalForProtected()
+
+assert(r.gotProtectedSlotCalledSignal)
+
+e.emitSignalForPublic()
+
+assert(r.gotPublicSlotCalledSignal)