aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2022-08-08 15:31:15 +0200
committerChristian Tismer <tismer@stackless.com>2022-08-17 09:46:17 +0200
commitbd3e8afdb06c8614164e4ed1f195a8618c1d586d (patch)
tree8e7ab3249c0d6377982dcf84417876b592105845 /sources/pyside6/tests
parent50b0ccb4d17ccd7befc54dc51baec0ee5425da0a (diff)
signature: Update, cleanup and install signature test
The signature tests were disabled for a long time. Meanwhile, a number of unresolved values have piled up. The reason was partially a weird mixture of intents that made it unpractical to run the full tests on every platform. Mamely, macOS was quite unclear about which signatures have to exist and which don't. This overhaul does the following: * The various Shiboken modules were removed from the tested signatures * A pure test is added that only checks for no offending lines As effect, signatures are tested unconditionally without any other conditions. The other tests remain disabled. Task-number: PYSIDE-510 Change-Id: Id9e65ed7324a795966f460e13dd95fd5cebcca6a Pick-to: 6.3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside6/tests')
-rw-r--r--sources/pyside6/tests/registry/existence_test.py17
-rw-r--r--sources/pyside6/tests/registry/init_platform.py22
2 files changed, 23 insertions, 16 deletions
diff --git a/sources/pyside6/tests/registry/existence_test.py b/sources/pyside6/tests/registry/existence_test.py
index 15476caa5..5540b6e04 100644
--- a/sources/pyside6/tests/registry/existence_test.py
+++ b/sources/pyside6/tests/registry/existence_test.py
@@ -36,8 +36,8 @@ import unittest
from pathlib import Path
sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
-from init_paths import init_all_test_paths
-init_all_test_paths()
+from init_paths import init_test_paths
+init_test_paths(True)
from init_platform import enum_all, generate_all
from util import (isolate_warnings, check_warnings, suppress_warnings, warn,
@@ -83,6 +83,19 @@ if have_refmodule and not hasattr(sig_exists, dict_name):
have_refmodule = False
+class TestUnrecognizedOffending(unittest.TestCase):
+ """
+ We run the signature generation on all modules and raise an error
+ if a warning was issued. This is better than turning warnings into
+ errors because that would stop early before we have all warnings.
+ """
+ def test_signatures_recognized(self):
+ with isolate_warnings():
+ found_sigs = enum_all()
+ if check_warnings():
+ raise RuntimeError("There are errors, see above.")
+
+
@unittest.skipIf(not have_refmodule,
"not activated for this platform or version")
class TestSignaturesExists(unittest.TestCase):
diff --git a/sources/pyside6/tests/registry/init_platform.py b/sources/pyside6/tests/registry/init_platform.py
index 09190b7ce..8abf30216 100644
--- a/sources/pyside6/tests/registry/init_platform.py
+++ b/sources/pyside6/tests/registry/init_platform.py
@@ -77,13 +77,7 @@ def set_ospaths(build_dir):
ps = os.pathsep
ospath_var = "PATH" if sys.platform == "win32" else "LD_LIBRARY_PATH"
old_val = os.environ.get(ospath_var, "")
- lib_path = [os.path.join(build_dir, "pyside6", "libpyside"),
- os.path.join(build_dir, "pyside6", "tests", "pysidetest"),
- os.path.join(build_dir, "shiboken6", "tests", "libminimal"),
- os.path.join(build_dir, "shiboken6", "tests", "libsample"),
- os.path.join(build_dir, "shiboken6", "tests", "libother"),
- os.path.join(build_dir, "shiboken6", "tests", "libsmart"),
- os.path.join(build_dir, "shiboken6", "libshiboken")]
+ lib_path = [os.path.join(build_dir, "pyside6", "tests", "pysidetest"),]
ospath = ps.join(lib_path + old_val.split(ps))
os.environ[ospath_var] = ospath
@@ -103,12 +97,6 @@ all_modules.append("testbinding")
from shiboken6 import Shiboken
all_modules.append("shiboken6.Shiboken")
-# 'sample/smart' are needed by 'other', so import them first.
-for modname in "minimal sample smart other".split():
- sys.path.insert(0, os.path.join(shiboken_build_dir, "tests", modname + "binding"))
- __import__(modname)
- all_modules.append(modname)
-
from shibokensupport.signature.lib.enum_sig import SimplifyingEnumerator
# Make sure not to get .pyc in Python2.
@@ -172,6 +160,12 @@ def enum_all():
return ret
+LICENSE_TEXT = """
+# 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
+"""
+
+
def generate_all():
refPath = get_refpath()
module = os.path.basename(os.path.splitext(refPath)[0])
@@ -182,7 +176,7 @@ def generate_all():
license_line = next((lno for lno, line in enumerate(lines)
if "$QT_END_LICENSE$" in line))
fmt.print("#recreate # uncomment this to enforce generation")
- fmt.print("".join(lines[:license_line + 3]))
+ fmt.print(LICENSE_TEXT)
version = sys.version.replace('\n', ' ')
build = qt_build()
fmt.print(dedent(f'''\