aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/samplebinding/class_fields_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/tests/samplebinding/class_fields_test.py')
-rw-r--r--sources/shiboken6/tests/samplebinding/class_fields_test.py71
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__':