aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtCore/qobject_property_test.py
blob: d1f12b343d39e2d3c442f414d5f4ccae255e29aa (plain)
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()