1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
'''Test cases for QObject property and setProperty'''
import unittest
from PySide.QtCore import *
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 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')
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()
|