diff options
Diffstat (limited to 'sources/pyside6/tests/registry/util.py')
-rw-r--r-- | sources/pyside6/tests/registry/util.py | 66 |
1 files changed, 18 insertions, 48 deletions
diff --git a/sources/pyside6/tests/registry/util.py b/sources/pyside6/tests/registry/util.py index dba4b5c0a..5d81926a1 100644 --- a/sources/pyside6/tests/registry/util.py +++ b/sources/pyside6/tests/registry/util.py @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of Qt for Python. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## 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-2.0.html and -## 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 LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only """ Supporting isolation of warnings @@ -54,6 +18,7 @@ from contextlib import contextmanager warn_name = "__warningregistry__" ignore_re = 'Not importing directory .*' + @contextmanager def isolate_warnings(): save_warnings = {} @@ -61,8 +26,6 @@ def isolate_warnings(): if mod and hasattr(mod, warn_name): save_warnings[name] = mod.__dict__[warn_name] delattr(mod, warn_name) - else: - save_warnings[name] = None yield for name, warn in save_warnings.items(): mod = sys.modules[name] @@ -71,12 +34,14 @@ def isolate_warnings(): if warn is None: delattr(mod, warn_name) + @contextmanager def suppress_warnings(): with warnings.catch_warnings(): warnings.simplefilter("ignore") yield + def check_warnings(): for name, mod in sys.modules.items(): if mod: @@ -90,6 +55,7 @@ def check_warnings(): return True return False + def warn(message, category=None, stacklevel=2): """Issue a warning with the default 'RuntimeWarning'""" if category is None: @@ -105,14 +71,8 @@ def linux_distribution(): # distro package, ASAP! The distro has been extracted from Python, # because it changes more often than the Python version. distribution = [] - try: - import distro - distribution = distro.linux_distribution() - except ImportError: - # platform.linux_distribution() was removed in 3.8 - if sys.version_info[:2] < (3, 8): - import platform - distribution = platform.linux_distribution() + import distro + distribution = distro.linux_distribution() if distribution: return "".join(distribution[:2]).lower() warnings.warn('Cannot determine Linux distribution, please install distro', @@ -135,28 +95,36 @@ else: is_py3 = sys.version_info[0] == 3 is_ci = os.environ.get("QTEST_ENVIRONMENT", "") == "ci" + def get_script_dir(): script_dir = os.path.normpath(os.path.dirname(__file__)) while "sources" not in os.listdir(script_dir): script_dir = os.path.dirname(script_dir) return script_dir + def qt_version(): from PySide6.QtCore import __version__ return tuple(map(int, __version__.split("."))) # Format a registry file name for version. + + def _registry_filename(version, use_ci_module): ext_ci = "_ci" if use_ci_module else "" name = f"exists_{platform_name}_{version[0]}_{version[1]}_{version[2]}{ext_ci}.py" return os.path.join(os.path.dirname(__file__), name) # Return the expected registry file name. + + def get_refpath(use_ci_module=is_ci): return _registry_filename(qt_version(), use_ci_module) # Return the registry file name, either that of the current # version or fall back to a previous patch release. + + def get_effective_refpath(use_ci_module=is_ci): refpath = get_refpath(use_ci_module) if os.path.exists(refpath): @@ -171,6 +139,8 @@ def get_effective_refpath(use_ci_module=is_ci): return refpath # Import the CI version of the platform module + + def import_refmodule(use_ci_module=is_ci): refpath = get_effective_refpath(use_ci_module) modname = os.path.basename(os.path.splitext(refpath)[0]) |