diff options
author | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-10 19:57:18 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-10 20:18:59 -0300 |
commit | 1b6337d8b4a65988dfbeb0eed67bc6584b25fdee (patch) | |
tree | e6efde3e5d00d4530f321894e62801ab8eac72e8 /tests/QtCore/qobject_property_test.py | |
parent | d8a192b5e14e996992a98766cd39ca2028e6474e (diff) |
Removed QVariant from PySide.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'tests/QtCore/qobject_property_test.py')
-rw-r--r-- | tests/QtCore/qobject_property_test.py | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/tests/QtCore/qobject_property_test.py b/tests/QtCore/qobject_property_test.py index d1f12b343..e94562c90 100644 --- a/tests/QtCore/qobject_property_test.py +++ b/tests/QtCore/qobject_property_test.py @@ -5,16 +5,24 @@ import unittest from PySide.QtCore import * +class Dummy(object): + '''Pure python sample class''' + pass + +class MySize(QSize): + '''Extended class''' + pass + 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.assert_(obj.setProperty('objectName', 'dummy')) self.assertEqual(obj.objectName(), 'dummy') - self.assert_(obj.setProperty('objectName', QVariant('foobar'))) + self.assert_(obj.setProperty('objectName', 'foobar')) self.assertEqual(obj.objectName(), 'foobar') def testDynamicProperty(self): @@ -22,50 +30,66 @@ class PropertyCase(unittest.TestCase): obj = QObject() # Should return false when creating a new dynamic property - self.assert_(not obj.setProperty('dummy', QVariant('mydata'))) + self.assert_(not obj.setProperty('dummy', 'mydata')) prop = obj.property('dummy') - self.assert_(isinstance(prop, QVariant)) - self.assert_(prop.isValid()) - self.assertEqual(obj.property('dummy').toString(), 'mydata') + self.assert_(isinstance(prop, unicode)) + self.assertEqual(obj.property('dummy'), 'mydata') - self.assert_(not obj.setProperty('dummy', QVariant('zigzag'))) + self.assert_(not obj.setProperty('dummy', 'zigzag')) prop = obj.property('dummy') - self.assert_(isinstance(prop, QVariant)) - self.assert_(prop.isValid()) - self.assertEqual(obj.property('dummy').toString(), 'zigzag') + self.assert_(isinstance(prop, unicode)) + self.assertEqual(obj.property('dummy'), 'zigzag') - self.assert_(not obj.setProperty('dummy', QVariant(42))) + self.assert_(not obj.setProperty('dummy', 42)) prop = obj.property('dummy') - self.assert_(isinstance(prop, QVariant)) - self.assert_(prop.isValid()) + self.assert_(isinstance(prop, int)) # QVariant.toInt has a bool* arg in C++, so returns a tuple - self.assertEqual(obj.property('dummy').toInt(), (42, True)) + self.assertEqual(obj.property('dummy'), 42) def testStringProperty(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') + self.assert_(isinstance(prop, unicode)) + self.assertEqual(obj.property('dummy'), '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') + self.assert_(isinstance(prop, unicode)) + self.assertEqual(obj.property('dummy'), 'data') def testInvalidProperty(self): #QObject.property() for invalid properties obj = QObject() prop = obj.property('dummy') - self.assert_(not prop.isValid()) + self.assertEqual(prop, None) + + def testTypeNamePythonClasses(self): + '''QVariant of pure python classes''' + d = Dummy() + obj = QObject() + obj.setProperty('foo', d) + # inherited type name from other binding + self.assertEqual(obj.property('foo'), d) + + def testQVariantPyList(self): + '''QVariant(QVariantList).toPyObject() equals original list''' + obj = QObject() + obj.setProperty('foo', [1, 'two', 3]) + self.assertEqual(obj.property('foo'), [1, 'two', 3]) + + def testSubClassConvertion(self): + '''QVariant(QSize subclass) type is UserType and returns same object''' + mysize = MySize(0, 0) + obj = QObject() + obj.setProperty('foo', mysize) + self.assertTrue(obj.property('foo') is mysize) if __name__ == '__main__': unittest.main() |