aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2024-10-27 18:17:11 +0100
committerChristian Tismer <tismer@stackless.com>2024-11-01 13:40:14 +0000
commit07ee31548a3af6552e62625860c20772503e658c (patch)
tree9c247657936f2735834c4f3f2ad06f5beae2ebe0 /sources/pyside6/tests
parentcc1164d29878ab74dbbd94718eee1bc2acdddbf6 (diff)
setup: fix PySide6.__all__ after the wheel split, amendment 3
The __all__ support for the PySide6 module works just fine. But there is a last incompatibility that might strike others as it did hit ourselves when using PySide6.__dict["__all__"]: Use a derived dict type and define a __missing__ attribute. Derive further a module type, then it works without problems. A little support function in Shiboken allows to replace the dict of PySide6 with this derived type. amends 703d975f16aff95bc9014a2689a3ae824b5a552f. Pick-to: 6.8 Task-number: PYSIDE-2895 Task-number: PYSIDE-1890 Change-Id: I018228116a5fdd1401c1ebd42ceb886f6829deeb Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/tests')
-rw-r--r--sources/pyside6/tests/pysidetest/all_modules_load_test.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/sources/pyside6/tests/pysidetest/all_modules_load_test.py b/sources/pyside6/tests/pysidetest/all_modules_load_test.py
index 16f2369a7..6b3ebe732 100644
--- a/sources/pyside6/tests/pysidetest/all_modules_load_test.py
+++ b/sources/pyside6/tests/pysidetest/all_modules_load_test.py
@@ -13,18 +13,26 @@ init_test_paths(False)
import PySide6
+
# Note:
# "from PySide6 import *" can only be used at module level.
# It is also really not recommended to use. But for testing,
# the "__all__" variable is a great feature!
-
-
class AllModulesImportTest(unittest.TestCase):
def testAllModulesCanImport(self):
# would also work: exec("from PySide6 import *")
for name in PySide6.__all__:
exec(f"import PySide6.{name}")
+ def testAllReappearsAfterDel(self):
+ # This is the only incompatibility that remains:
+ # After __all__ is deleted, it will re-appear.
+ PySide6.__all__ = 42
+ self.assertEqual(PySide6.__dict__["__all__"], 42)
+ del PySide6.__all__
+ self.assertTrue(PySide6.__dict__["__all__"])
+ self.assertNotEqual(PySide6.__dict__["__all__"], 42)
+
if __name__ == '__main__':
unittest.main()