diff options
Diffstat (limited to 'sources/pyside6/tests/QtCore/classinfo_test.py')
-rw-r--r-- | sources/pyside6/tests/QtCore/classinfo_test.py | 88 |
1 files changed, 45 insertions, 43 deletions
diff --git a/sources/pyside6/tests/QtCore/classinfo_test.py b/sources/pyside6/tests/QtCore/classinfo_test.py index e6a0a9256..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 @@ -38,6 +13,7 @@ init_test_paths(False) from PySide6.QtCore import QObject, QCoreApplication, ClassInfo + class TestClassInfo(unittest.TestCase): def test_metadata(self): @ClassInfo(author='pyside', url='http://www.pyside.org') @@ -48,20 +24,37 @@ class TestClassInfo(unittest.TestCase): mo = o.metaObject() self.assertEqual(mo.classInfoCount(), 2) - ci = mo.classInfo(0) #author + ci = mo.classInfo(0) # author self.assertEqual(ci.name(), 'author') self.assertEqual(ci.value(), 'pyside') - ci = mo.classInfo(1) #url + ci = mo.classInfo(1) # url 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) @@ -93,20 +86,29 @@ class TestClassInfo(unittest.TestCase): self.assertRaises(TypeError, decorator, MyObject2) def test_can_only_be_used_on_qobjects(self): - def test_function(): pass - self.assertRaises(TypeError, ClassInfo(), test_function) + def make_info(): + return ClassInfo(author='pyside') - class NotAQObject(object): pass - self.assertRaises(TypeError, ClassInfo(), NotAQObject) + def test_function(): + pass + self.assertRaises(TypeError, make_info(), test_function) - class QObjectSubclass(QObject): pass - ClassInfo()(QObjectSubclass) + class NotAQObject(object): + pass + self.assertRaises(TypeError, make_info(), NotAQObject) - class SubclassOfNativeQObjectSubclass(QCoreApplication): pass - ClassInfo()(SubclassOfNativeQObjectSubclass) + class QObjectSubclass(QObject): + pass + make_info()(QObjectSubclass) + + class SubclassOfNativeQObjectSubclass(QCoreApplication): + pass + make_info()(SubclassOfNativeQObjectSubclass) + + class SubclassOfPythonQObjectSubclass(QObjectSubclass): + pass + make_info()(SubclassOfPythonQObjectSubclass) - class SubclassOfPythonQObjectSubclass(QObjectSubclass): pass - ClassInfo()(SubclassOfPythonQObjectSubclass) if __name__ == '__main__': unittest.main() |