aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtScript/property_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtScript/property_test.py')
-rw-r--r--tests/QtScript/property_test.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/QtScript/property_test.py b/tests/QtScript/property_test.py
new file mode 100644
index 000000000..6d2041699
--- /dev/null
+++ b/tests/QtScript/property_test.py
@@ -0,0 +1,62 @@
+import unittest
+
+from PySide.QtCore import QObject, QProperty, QCoreApplication
+from PySide.QtScript import QScriptEngine
+
+class MyObject(QObject):
+ def __init__(self, parent = None):
+ QObject.__init__(self, parent)
+ self._p = 100
+
+ def setX(self, value):
+ self._p = value
+
+ def getX(self):
+ return self._p
+
+ def resetX(self):
+ self._p = 100
+
+ def delX(self):
+ self._p = 0
+
+ x = QProperty(int, getX, setX, resetX, delX)
+
+
+class QPropertyTest(unittest.TestCase):
+
+ def testSimple(self):
+ o = MyObject()
+ self.assertEqual(o.x, 100)
+ o.x = 42
+ self.assertEqual(o.x, 42)
+
+ def testHasProperty(self):
+ o = MyObject()
+ o.setProperty("x", 10)
+ self.assertEqual(o.x, 10)
+ self.assertEqual(o.property("x"), 10)
+
+ def testMetaProperty(self):
+ o = MyObject()
+ m = o.metaObject()
+ found = False
+ for i in range(m.propertyCount()):
+ mp = m.property(i)
+ if mp.name() == "x":
+ found = True
+ break
+ self.assert_(found)
+
+ def testScriptQProperty(self):
+ qapp = QCoreApplication([])
+ myEngine = QScriptEngine()
+ obj = MyObject()
+ scriptObj = myEngine.newQObject(obj)
+ myEngine.globalObject().setProperty("obj", scriptObj)
+ myEngine.evaluate("obj.x = 42")
+ self.assertEqual(scriptObj.property("x").toInt32(), 42)
+ self.assertEqual(obj.property("x"), 42)
+
+if __name__ == '__main__':
+ unittest.main()