diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-12-01 15:23:20 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-12-02 06:38:03 +0000 |
| commit | bfacabede1f9cb7dc1747879b310c4855b65bccf (patch) | |
| tree | 1c73bf7861437d4515d80a8d0728035754560ffe /sources/shiboken6/tests/samplebinding/class_fields_test.py | |
| parent | f379fe417a31981cf923930cae8799dc775a9b5f (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.py | 21 |
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() |
