aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-07-06 18:44:00 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-07-08 11:27:38 -0300
commit1c4ee915c07daae9919e890072593b51e54c9aec (patch)
tree19424c508a942a202711fe65530894c10aaa7282 /tests
parent693ae6d6c4073a483524af48e7a1a0ad1fba1131 (diff)
Implemented support to properties on QMetaObject.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>, Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/QtScript/CMakeLists.txt1
-rw-r--r--tests/QtScript/property_test.py62
2 files changed, 63 insertions, 0 deletions
diff --git a/tests/QtScript/CMakeLists.txt b/tests/QtScript/CMakeLists.txt
index e496591c7..41fc2c444 100644
--- a/tests/QtScript/CMakeLists.txt
+++ b/tests/QtScript/CMakeLists.txt
@@ -1,2 +1,3 @@
PYSIDE_TEST(base_test.py)
PYSIDE_TEST(engine_test.py)
+PYSIDE_TEST(property_test.py)
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()