aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/samplebinding/class_fields_test.py
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-01 15:23:20 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-02 06:38:03 +0000
commitbfacabede1f9cb7dc1747879b310c4855b65bccf (patch)
tree1c73bf7861437d4515d80a8d0728035754560ffe /sources/shiboken6/tests/samplebinding/class_fields_test.py
parentf379fe417a31981cf923930cae8799dc775a9b5f (diff)
shiboken6: Fix field modifications
The logic was only partially present, neither removal of getter/setter nor renaming had any effect. Rewrite the code to resemble that of AbstractMetaFunction (adding function applyFieldModifications()) Move some check functions from the generators to AbstractMetaField/Type. Add tests in libsample. Change-Id: Ib29d4e37db51f122b46702cb5d96b13da6d0f224 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/tests/samplebinding/class_fields_test.py')
-rw-r--r--sources/shiboken6/tests/samplebinding/class_fields_test.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/sources/shiboken6/tests/samplebinding/class_fields_test.py b/sources/shiboken6/tests/samplebinding/class_fields_test.py
index 202efcafb..9cc59762e 100644
--- a/sources/shiboken6/tests/samplebinding/class_fields_test.py
+++ b/sources/shiboken6/tests/samplebinding/class_fields_test.py
@@ -65,6 +65,27 @@ class TestAccessingCppFields(unittest.TestCase):
# attribution with invalid type
self.assertRaises(TypeError, lambda : setattr(d, 'primitiveField', None))
+ def testAccessingRenamedFields(self):
+ '''Reads and writes a renamed field.'''
+ d = Derived()
+ self.assertEqual(type(d.renamedField), int)
+ old_value = d.renamedField
+ new_value = 2255
+ d.renamedField = new_value
+ self.assertEqual(d.renamedField, new_value)
+ self.assertNotEqual(d.renamedField, old_value)
+
+ def testAccessingReadOnlyFields(self):
+ '''Tests a read-only field.'''
+ d = Derived()
+ self.assertEqual(type(d.readOnlyField), int)
+ old_value = d.readOnlyField
+ try:
+ d.readOnlyField = 25555
+ except AttributeError:
+ pass
+ self.assertEqual(d.readOnlyField, old_value)
+
def testAccessingUsersPrimitiveTypeField(self):
'''Reads and writes an user's primitive type (in this case an 'Complex') field.'''
d = Derived()