aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtCore/qobject_property_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtCore/qobject_property_test.py')
-rw-r--r--tests/QtCore/qobject_property_test.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/QtCore/qobject_property_test.py b/tests/QtCore/qobject_property_test.py
new file mode 100644
index 000000000..33df2ac9b
--- /dev/null
+++ b/tests/QtCore/qobject_property_test.py
@@ -0,0 +1,71 @@
+
+'''Test cases for QObject property and setProperty'''
+
+import unittest
+
+from PySide.QtCore import QObject, QVariant, QString
+
+class PropertyCase(unittest.TestCase):
+ '''Test case for QObject properties'''
+
+ def testObjectNameProperty(self):
+ #QObject.setProperty() for existing C++ property
+ obj = QObject()
+ self.assert_(obj.setProperty('objectName', QVariant('dummy')))
+ self.assertEqual(obj.objectName(), 'dummy')
+
+ self.assert_(obj.setProperty('objectName', QVariant('foobar')))
+ self.assertEqual(obj.objectName(), 'foobar')
+
+ def testDynamicProperty(self):
+ #QObject.setProperty() for dynamic properties
+ obj = QObject()
+
+ # Should return false when creating a new dynamic property
+ self.assert_(not obj.setProperty('dummy', QVariant('mydata')))
+ prop = obj.property('dummy')
+ self.assert_(isinstance(prop, QVariant))
+ self.assert_(prop.isValid())
+ self.assertEqual(obj.property('dummy').toString(), 'mydata')
+
+ self.assert_(not obj.setProperty('dummy', QVariant('zigzag')))
+ prop = obj.property('dummy')
+ self.assert_(isinstance(prop, QVariant))
+ self.assert_(prop.isValid())
+ self.assertEqual(obj.property('dummy').toString(), 'zigzag')
+
+ self.assert_(not obj.setProperty('dummy', QVariant(42)))
+ prop = obj.property('dummy')
+ self.assert_(isinstance(prop, QVariant))
+ self.assert_(prop.isValid())
+ # QVariant.toInt has a bool* arg in C++, so returns a tuple
+ self.assertEqual(obj.property('dummy').toInt(), (42, True))
+
+ def testQStringProperty(self):
+ obj = QObject()
+ self.assert_(not obj.setProperty('dummy', QString('data')))
+ prop = obj.property('dummy')
+
+ self.assert_(isinstance(prop, QVariant))
+ self.assert_(prop.isValid())
+ self.assertEqual(obj.property('dummy').toString(), QString('data'))
+
+ def testImplicitQVariantProperty(self):
+ obj = QObject()
+ self.assert_(not obj.setProperty('dummy', 'data'))
+ prop = obj.property('dummy')
+
+ self.assert_(isinstance(prop, QVariant))
+ self.assert_(prop.isValid())
+ self.assertEqual(obj.property('dummy').toString(), 'data')
+
+ def testInvalidProperty(self):
+ #QObject.property() for invalid properties
+ obj = QObject()
+
+ prop = obj.property('dummy')
+ self.assert_(not prop.isValid())
+
+
+if __name__ == '__main__':
+ unittest.main()