diff options
Diffstat (limited to 'sources/shiboken6/tests/samplebinding/class_fields_test.py')
-rw-r--r-- | sources/shiboken6/tests/samplebinding/class_fields_test.py | 71 |
1 files changed, 24 insertions, 47 deletions
diff --git a/sources/shiboken6/tests/samplebinding/class_fields_test.py b/sources/shiboken6/tests/samplebinding/class_fields_test.py index a29c84b1a..1eeb3d446 100644 --- a/sources/shiboken6/tests/samplebinding/class_fields_test.py +++ b/sources/shiboken6/tests/samplebinding/class_fields_test.py @@ -1,39 +1,11 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- -# -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the test suite of Qt for Python. -## -## $QT_BEGIN_LICENSE:GPL-EXCEPT$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3 as published by the Free Software -## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 '''Simple test case for accessing the exposed C++ class fields.''' import os import sys -from sys import getrefcount import unittest from pathlib import Path @@ -43,6 +15,7 @@ init_paths() from sample import Derived, Point, ObjectType + class TestAccessingCppFields(unittest.TestCase): '''Simple test case for accessing the exposed C++ class fields.''' @@ -64,7 +37,7 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(d.primitiveField, int(value)) # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'primitiveField', None)) + self.assertRaises(TypeError, lambda: setattr(d, 'primitiveField', None)) def testAccessingRenamedFields(self): '''Reads and writes a renamed field.''' @@ -100,7 +73,7 @@ class TestAccessingCppFields(unittest.TestCase): self.assertNotEqual(d.userPrimitiveField, old_value) # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'userPrimitiveField', None)) + self.assertRaises(TypeError, lambda: setattr(d, 'userPrimitiveField', None)) def testAccessingValueTypeField(self): '''Reads and writes a value type (in this case a 'Point') field.''' @@ -108,7 +81,7 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(type(d.valueTypeField), Point) # attribution - old_value = d.valueTypeField + old_value = d.valueTypeField # noqa: F841 new_value = Point(-10, 537) d.valueTypeField = new_value self.assertEqual(d.valueTypeField, new_value) @@ -120,7 +93,7 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(d.valueTypeField.y(), 20) # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'valueTypeField', 123)) + self.assertRaises(TypeError, lambda: setattr(d, 'valueTypeField', 123)) def testAccessingObjectTypeField(self): '''Reads and writes a object type (in this case an 'ObjectType') field.''' @@ -139,36 +112,40 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(d.objectTypeField, value) # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'objectTypeField', 123)) + self.assertRaises(TypeError, lambda: setattr(d, 'objectTypeField', 123)) + @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount") def testRefCountingAccessingObjectTypeField(self): '''Accessing a object type field should respect the reference counting rules.''' d = Derived() # attributing object to instance's field should increase its reference count o1 = ObjectType() - refcount1 = getrefcount(o1) + refcount1 = sys.getrefcount(o1) d.objectTypeField = o1 self.assertEqual(d.objectTypeField, o1) - self.assertEqual(getrefcount(d.objectTypeField), refcount1 + 1) + self.assertEqual(sys.getrefcount(d.objectTypeField), refcount1 + 1) - # attributing a new object to instance's field should decrease the previous object's reference count + # attributing a new object to instance's field should decrease the previous + # object's reference count o2 = ObjectType() - refcount2 = getrefcount(o2) + refcount2 = sys.getrefcount(o2) d.objectTypeField = o2 self.assertEqual(d.objectTypeField, o2) - self.assertEqual(getrefcount(o1), refcount1) - self.assertEqual(getrefcount(d.objectTypeField), refcount2 + 1) + self.assertEqual(sys.getrefcount(o1), refcount1) + self.assertEqual(sys.getrefcount(d.objectTypeField), refcount2 + 1) + @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount") def testRefCountingOfReferredObjectAfterDeletingReferrer(self): - '''Deleting the object referring to other object should decrease the reference count of the referee.''' + '''Deleting the object referring to other object should decrease the + reference count of the referee.''' d = Derived() o = ObjectType() - refcount = getrefcount(o) + refcount = sys.getrefcount(o) d.objectTypeField = o - self.assertEqual(getrefcount(o), refcount + 1) + self.assertEqual(sys.getrefcount(o), refcount + 1) del d - self.assertEqual(getrefcount(o), refcount) + self.assertEqual(sys.getrefcount(o), refcount) def testStaticField(self): self.assertEqual(Derived.staticPrimitiveField, 0) @@ -179,7 +156,7 @@ class TestAccessingCppFields(unittest.TestCase): # attribution old_value = d.bitField new_value = 1 - d.bitField= new_value + d.bitField = new_value self.assertEqual(d.bitField, new_value) self.assertNotEqual(d.bitField, old_value) @@ -189,7 +166,7 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(d.bitField, int(value)) # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'bitField', None)) + self.assertRaises(TypeError, lambda: setattr(d, 'bitField', None)) if __name__ == '__main__': |