diff options
Diffstat (limited to 'sources/shiboken6/tests/shibokenmodule/module_test.py')
-rw-r--r-- | sources/shiboken6/tests/shibokenmodule/module_test.py | 56 |
1 files changed, 22 insertions, 34 deletions
diff --git a/sources/shiboken6/tests/shibokenmodule/module_test.py b/sources/shiboken6/tests/shibokenmodule/module_test.py index 368df1824..9f9f8f5a4 100644 --- a/sources/shiboken6/tests/shibokenmodule/module_test.py +++ b/sources/shiboken6/tests/shibokenmodule/module_test.py @@ -1,30 +1,5 @@ -############################################################################# -## -## 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 import os import sys @@ -32,17 +7,19 @@ import unittest from pathlib import Path sys.path.append(os.fspath(Path(__file__).resolve().parents[1])) -from shiboken_paths import init_paths +from shiboken_paths import init_paths # noqa: E402 init_paths() -from shiboken6 import Shiboken -from sample import * +from shiboken6 import Shiboken # noqa: E402 +from sample import BlackBox, ObjectType, ObjectModel, ObjectView, Point # noqa: E402 + class MultipleInherited (ObjectType, Point): def __init__(self): ObjectType.__init__(self) Point.__init__(self) + class TestShiboken(unittest.TestCase): def testIsValid(self): self.assertTrue(Shiboken.isValid(object())) @@ -68,6 +45,16 @@ class TestShiboken(unittest.TestCase): self.assertTrue(Shiboken.createdByPython(bb)) bb.disposeObjectType(bb.keepObjectType(obj)) + def testWrapInstancePreserveId(self): + """PYSIDE-31: Verify that wrapInstance() returns the existing wrapper + even if a base class type is specified.""" + v = ObjectView() # inherits ObjectType + addresses = Shiboken.getCppPointer(v) + self.assertTrue(addresses) + address = addresses[0] + wrapped = Shiboken.wrapInstance(address, ObjectType) + self.assertEqual(id(wrapped), id(v)) + def testIsOwnedByPython(self): obj = ObjectType() self.assertTrue(Shiboken.ownedByPython(obj)) @@ -80,7 +67,7 @@ class TestShiboken(unittest.TestCase): p = ObjectType() obj = ObjectType(p) obj2 = ObjectType(obj) - obj3 = ObjectType(obj) + obj3 = ObjectType(obj) # noqa: F841 self.assertEqual(Shiboken.dump(None), "Ordinary Python type.") Shiboken.dump(obj) @@ -94,9 +81,9 @@ class TestShiboken(unittest.TestCase): # Don't crash even after deleting an object Shiboken.invalidate(obj) - Shiboken.dump(obj) # deleted - Shiboken.dump(p) # child deleted - Shiboken.dump(obj2) # parent deleted + Shiboken.dump(obj) # deleted + Shiboken.dump(p) # child deleted + Shiboken.dump(obj2) # parent deleted def testDelete(self): obj = ObjectType() @@ -120,5 +107,6 @@ class TestShiboken(unittest.TestCase): Shiboken.delete(obj) self.assertFalse(obj in Shiboken.getAllValidWrappers()) + if __name__ == '__main__': unittest.main() |