diff options
Diffstat (limited to 'sources/pyside6/tests/QtCore/classinfo_test.py')
-rw-r--r-- | sources/pyside6/tests/QtCore/classinfo_test.py | 67 |
1 files changed, 31 insertions, 36 deletions
diff --git a/sources/pyside6/tests/QtCore/classinfo_test.py b/sources/pyside6/tests/QtCore/classinfo_test.py index 7fed56bf7..0b0a0b4b6 100644 --- a/sources/pyside6/tests/QtCore/classinfo_test.py +++ b/sources/pyside6/tests/QtCore/classinfo_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 sys import os @@ -57,12 +32,29 @@ class TestClassInfo(unittest.TestCase): self.assertEqual(ci.name(), 'url') self.assertEqual(ci.value(), 'http://www.pyside.org') + def test_dictionary(self): + @ClassInfo({'author': 'pyside', 'author company': 'The Qt Company'}) + class MyObject(QObject): + pass + + o = MyObject() + mo = o.metaObject() + self.assertEqual(mo.classInfoCount(), 2) + + ci = mo.classInfo(0) # author + self.assertEqual(ci.name(), 'author') + self.assertEqual(ci.value(), 'pyside') + + ci = mo.classInfo(1) # url + self.assertEqual(ci.name(), 'author company') + self.assertEqual(ci.value(), 'The Qt Company') + def test_verify_metadata_types(self): - valid_dict = { '123': '456' } + valid_dict = {'123': '456'} - invalid_dict_1 = { '123': 456 } - invalid_dict_2 = { 123: 456 } - invalid_dict_3 = { 123: '456' } + invalid_dict_1 = {'123': 456} + invalid_dict_2 = {123: 456} + invalid_dict_3 = {123: '456'} ClassInfo(**valid_dict) @@ -94,25 +86,28 @@ class TestClassInfo(unittest.TestCase): self.assertRaises(TypeError, decorator, MyObject2) def test_can_only_be_used_on_qobjects(self): + def make_info(): + return ClassInfo(author='pyside') + def test_function(): pass - self.assertRaises(TypeError, ClassInfo(), test_function) + self.assertRaises(TypeError, make_info(), test_function) class NotAQObject(object): pass - self.assertRaises(TypeError, ClassInfo(), NotAQObject) + self.assertRaises(TypeError, make_info(), NotAQObject) class QObjectSubclass(QObject): pass - ClassInfo()(QObjectSubclass) + make_info()(QObjectSubclass) class SubclassOfNativeQObjectSubclass(QCoreApplication): pass - ClassInfo()(SubclassOfNativeQObjectSubclass) + make_info()(SubclassOfNativeQObjectSubclass) class SubclassOfPythonQObjectSubclass(QObjectSubclass): pass - ClassInfo()(SubclassOfPythonQObjectSubclass) + make_info()(SubclassOfPythonQObjectSubclass) if __name__ == '__main__': |