aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2021-08-28 12:49:20 +0200
committerChristian Tismer <tismer@stackless.com>2021-08-30 22:34:19 +0200
commit9412438ebec18721e1e825e07784821c185544ae (patch)
treea9ffef36cf02ce7eed7c2c59b6758a8200307b7c
parent1a185feb6779ecdead6ae88f8f44f1d18616b37a (diff)
PyPySide: Skip all tests which use reference counting
[ChangeLog][PySide6] Tests which use reference counting need to be skipped in upcoming PyPy builds. Task-number: PYSIDE-535 Change-Id: I5dca3257d3dc40f53e9b4e4a69e24c07938047c2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--sources/pyside6/tests/QtCore/qinstallmsghandler_test.py1
-rw-r--r--sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py1
-rw-r--r--sources/pyside6/tests/QtCore/qobject_destructor.py1
-rw-r--r--sources/pyside6/tests/QtCore/qobject_event_filter_test.py2
-rw-r--r--sources/pyside6/tests/QtCore/qobject_parent_test.py68
-rw-r--r--sources/pyside6/tests/QtCore/qtimer_timeout_test.py1
-rw-r--r--sources/pyside6/tests/QtCore/tr_noop_test.py5
-rw-r--r--sources/pyside6/tests/QtGui/bug_367.py1
-rw-r--r--sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py63
-rw-r--r--sources/pyside6/tests/QtSvg/qsvggenerator_test.py14
-rw-r--r--sources/pyside6/tests/QtUiTools/bug_909.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1002.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_1006.py2
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_547.py3
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_576.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_585.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_674.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/bug_811.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/event_filter_test.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/keep_reference_test.py17
-rw-r--r--sources/pyside6/tests/QtWidgets/qlayout_ref_test.py49
-rw-r--r--sources/pyside6/tests/QtWidgets/qlayout_test.py2
-rw-r--r--sources/pyside6/tests/QtWidgets/qlistwidget_test.py4
-rw-r--r--sources/pyside6/tests/QtWidgets/qmainwindow_test.py2
-rw-r--r--sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/qstyle_test.py1
-rw-r--r--sources/pyside6/tests/QtWidgets/qtextedit_test.py8
-rw-r--r--sources/pyside6/tests/QtWidgets/reference_count_test.py2
-rw-r--r--sources/pyside6/tests/signals/ref03_test.py8
-rw-r--r--sources/pyside6/tests/signals/signal_manager_refcount_test.py8
-rw-r--r--sources/pyside6/tests/signals/slot_reference_count_test.py15
-rw-r--r--sources/shiboken6/tests/samplebinding/class_fields_test.py25
-rw-r--r--sources/shiboken6/tests/samplebinding/keep_reference_test.py17
-rw-r--r--sources/shiboken6/tests/samplebinding/multiple_derived_test.py8
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttype_test.py2
-rw-r--r--sources/shiboken6/tests/samplebinding/objecttypelayout_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py3
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/ownership_transference_test.py2
-rw-r--r--sources/shiboken6/tests/samplebinding/point_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/pointerholder_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/privatector_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/privatedtor_test.py2
43 files changed, 213 insertions, 137 deletions
diff --git a/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py b/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
index df636cdd1..1a6214701 100644
--- a/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
+++ b/sources/pyside6/tests/QtCore/qinstallmsghandler_test.py
@@ -65,6 +65,7 @@ class QInstallMsgHandlerTest(unittest.TestCase):
ret = qInstallMessageHandler(None)
self.assertEqual(ret, None)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRet(self):
ret = qInstallMessageHandler(None)
self.assertEqual(ret, None)
diff --git a/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py b/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
index 70ca5b9a6..c04c8b3c4 100644
--- a/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
+++ b/sources/pyside6/tests/QtCore/qmodelindex_internalpointer_test.py
@@ -65,6 +65,7 @@ class TestQModelIndexInternalPointer(unittest.TestCase):
i = idx.internalPointer()
self.assertEqual(i, "Hello")
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCounting(self):
# Test reference counting when retrieving data with
# QModelIndex.internalPointer
diff --git a/sources/pyside6/tests/QtCore/qobject_destructor.py b/sources/pyside6/tests/QtCore/qobject_destructor.py
index d24017397..d9fe18d1d 100644
--- a/sources/pyside6/tests/QtCore/qobject_destructor.py
+++ b/sources/pyside6/tests/QtCore/qobject_destructor.py
@@ -45,6 +45,7 @@ class MyObject(QObject):
class TestDestructor(unittest.TestCase):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReference(self):
o = QObject()
m = MyObject(o)
diff --git a/sources/pyside6/tests/QtCore/qobject_event_filter_test.py b/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
index 362982000..73c1544ed 100644
--- a/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_event_filter_test.py
@@ -115,6 +115,7 @@ class TestQObjectEventFilterPython(UsesQCoreApplication):
self.assertEqual(filtered.times_called, 5)
self.assertEqual(self.obj_filter.events_handled, 5)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testInstallEventFilterRefCountAfterDelete(self):
'''Bug 910 - installEventFilter() increments reference count on target object
http://bugs.pyside.org/show_bug.cgi?id=910'''
@@ -131,6 +132,7 @@ class TestQObjectEventFilterPython(UsesQCoreApplication):
del obj
self.assertEqual(wref(), None)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testInstallEventFilterRefCountAfterRemove(self):
# Bug 910
obj = QObject()
diff --git a/sources/pyside6/tests/QtCore/qobject_parent_test.py b/sources/pyside6/tests/QtCore/qobject_parent_test.py
index 63f8e3561..9dcbc05da 100644
--- a/sources/pyside6/tests/QtCore/qobject_parent_test.py
+++ b/sources/pyside6/tests/QtCore/qobject_parent_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -64,23 +63,26 @@ class ParentRefCountCase(unittest.TestCase):
del self.child
del self.parent
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testSetParent(self):
# QObject.setParent() refcount changes
- self.assertEqual(getrefcount(self.child), 2)
+ self.assertEqual(sys.getrefcount(self.child), 2)
self.child.setParent(self.parent)
- self.assertEqual(getrefcount(self.child), 3)
+ self.assertEqual(sys.getrefcount(self.child), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testSetParentTwice(self):
- self.assertEqual(getrefcount(self.child), 2)
+ self.assertEqual(sys.getrefcount(self.child), 2)
self.child.setParent(self.parent)
- self.assertEqual(getrefcount(self.child), 3)
+ self.assertEqual(sys.getrefcount(self.child), 3)
self.child.setParent(self.parent)
- self.assertEqual(getrefcount(self.child), 3)
+ self.assertEqual(sys.getrefcount(self.child), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testConstructor(self):
# QObject(QObject) refcount changes
child = QObject(self.parent)
- self.assertEqual(getrefcount(child), 3)
+ self.assertEqual(sys.getrefcount(child), 3)
class ParentCase(unittest.TestCase):
@@ -215,77 +217,81 @@ class ParentCase(unittest.TestCase):
class TestParentOwnership(unittest.TestCase):
'''Test case for Parent/Child object ownership'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentDestructor(self):
parent = QObject()
- self.assertEqual(getrefcount(parent), 2)
+ self.assertEqual(sys.getrefcount(parent), 2)
child = QObject(parent)
- self.assertEqual(getrefcount(child), 3)
- self.assertEqual(getrefcount(parent), 2)
+ self.assertEqual(sys.getrefcount(child), 3)
+ self.assertEqual(sys.getrefcount(parent), 2)
del parent
- self.assertEqual(getrefcount(child), 2)
+ self.assertEqual(sys.getrefcount(child), 2)
# this will fail because parent deleted child cpp object
self.assertRaises(RuntimeError, lambda: child.objectName())
# test parent with multiples children
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testMultipleChildren(self):
o = QObject()
- self.assertEqual(getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(o), 2)
c = QObject(o)
- self.assertEqual(getrefcount(c), 3)
- self.assertEqual(getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(c), 3)
+ self.assertEqual(sys.getrefcount(o), 2)
c2 = QObject(o)
- self.assertEqual(getrefcount(o), 2)
- self.assertEqual(getrefcount(c), 3)
- self.assertEqual(getrefcount(c2), 3)
+ self.assertEqual(sys.getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(c), 3)
+ self.assertEqual(sys.getrefcount(c2), 3)
del o
- self.assertEqual(getrefcount(c), 2)
- self.assertEqual(getrefcount(c2), 2)
+ self.assertEqual(sys.getrefcount(c), 2)
+ self.assertEqual(sys.getrefcount(c2), 2)
# this will fail because parent deleted child cpp object
self.assertRaises(RuntimeError, lambda: c.objectName())
self.assertRaises(RuntimeError, lambda: c2.objectName())
# test recursive parent
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRecursiveParent(self):
o = QObject()
- self.assertEqual(getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(o), 2)
c = QObject(o)
- self.assertEqual(getrefcount(c), 3)
- self.assertEqual(getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(c), 3)
+ self.assertEqual(sys.getrefcount(o), 2)
c2 = QObject(c)
- self.assertEqual(getrefcount(o), 2)
- self.assertEqual(getrefcount(c), 3)
- self.assertEqual(getrefcount(c2), 3)
+ self.assertEqual(sys.getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(c), 3)
+ self.assertEqual(sys.getrefcount(c2), 3)
del o
- self.assertEqual(getrefcount(c), 2)
- self.assertEqual(getrefcount(c2), 2)
+ self.assertEqual(sys.getrefcount(c), 2)
+ self.assertEqual(sys.getrefcount(c2), 2)
# this will fail because parent deleted child cpp object
self.assertRaises(RuntimeError, lambda: c.objectName())
self.assertRaises(RuntimeError, lambda: c2.objectName())
# test parent transfer
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentTransfer(self):
o = QObject()
- self.assertEqual(getrefcount(o), 2)
+ self.assertEqual(sys.getrefcount(o), 2)
c = QObject()
- self.assertEqual(getrefcount(c), 2)
+ self.assertEqual(sys.getrefcount(c), 2)
c.setParent(o)
- self.assertEqual(getrefcount(c), 3)
+ self.assertEqual(sys.getrefcount(c), 3)
c.setParent(None)
- self.assertEqual(getrefcount(c), 2)
+ self.assertEqual(sys.getrefcount(c), 2)
del c
del o
diff --git a/sources/pyside6/tests/QtCore/qtimer_timeout_test.py b/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
index ed2780c7a..7dbd30bd7 100644
--- a/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
+++ b/sources/pyside6/tests/QtCore/qtimer_timeout_test.py
@@ -76,6 +76,7 @@ class TestTimeoutSignal(UsesQCoreApplication):
# Default callback
self.called = True
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testTimeoutSignal(self):
# Test the QTimer timeout() signal
refCount = sys.getrefcount(self.timer)
diff --git a/sources/pyside6/tests/QtCore/tr_noop_test.py b/sources/pyside6/tests/QtCore/tr_noop_test.py
index b2139e754..b665d4728 100644
--- a/sources/pyside6/tests/QtCore/tr_noop_test.py
+++ b/sources/pyside6/tests/QtCore/tr_noop_test.py
@@ -47,30 +47,35 @@ class QtTrNoopTest(unittest.TestCase):
def tearDown(self):
del self.txt
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTrNoop(self):
refcnt = sys.getrefcount(self.txt)
result = QT_TR_NOOP(self.txt)
self.assertEqual(result, self.txt)
self.assertEqual(sys.getrefcount(result), refcnt + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTrNoopUtf8(self):
refcnt = sys.getrefcount(self.txt)
result = QT_TR_NOOP_UTF8(self.txt)
self.assertEqual(result, self.txt)
self.assertEqual(sys.getrefcount(result), refcnt + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTranslateNoop(self):
refcnt = sys.getrefcount(self.txt)
result = QT_TRANSLATE_NOOP(None, self.txt)
self.assertEqual(result, self.txt)
self.assertEqual(sys.getrefcount(result), refcnt + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTranslateNoopUtf8(self):
refcnt = sys.getrefcount(self.txt)
result = QT_TRANSLATE_NOOP_UTF8(self.txt)
self.assertEqual(result, self.txt)
self.assertEqual(sys.getrefcount(result), refcnt + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQtTranslateNoop3(self):
refcnt = sys.getrefcount(self.txt)
result = QT_TRANSLATE_NOOP3(None, self.txt, None)
diff --git a/sources/pyside6/tests/QtGui/bug_367.py b/sources/pyside6/tests/QtGui/bug_367.py
index eba44105c..40c0d6936 100644
--- a/sources/pyside6/tests/QtGui/bug_367.py
+++ b/sources/pyside6/tests/QtGui/bug_367.py
@@ -42,6 +42,7 @@ from PySide6.QtGui import QStandardItem, QStandardItemModel
class BugTest(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCase(self):
model = QStandardItemModel()
parentItem = model.invisibleRootItem()
diff --git a/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py b/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
index 8c9fe6904..87f140580 100644
--- a/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
+++ b/sources/pyside6/tests/QtStateMachine/qabstracttransition_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -91,107 +90,111 @@ class QAbstractTransitionTest(unittest.TestCase):
QTimer.singleShot(100, app.quit)
app.exec()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountOfTargetState(self):
transition = QEventTransition()
state1 = QState()
- refcount1 = getrefcount(state1)
+ refcount1 = sys.getrefcount(state1)
transition.setTargetState(state1)
self.assertEqual(transition.targetState(), state1)
- self.assertEqual(getrefcount(transition.targetState()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetState()), refcount1 + 1)
state2 = QState()
- refcount2 = getrefcount(state2)
+ refcount2 = sys.getrefcount(state2)
transition.setTargetState(state2)
self.assertEqual(transition.targetState(), state2)
- self.assertEqual(getrefcount(transition.targetState()), refcount2 + 1)
- self.assertEqual(getrefcount(state1), refcount1)
+ self.assertEqual(sys.getrefcount(transition.targetState()), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(state1), refcount1)
del transition
- self.assertEqual(getrefcount(state2), refcount2)
+ self.assertEqual(sys.getrefcount(state2), refcount2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountOfTargetStates(self):
transition = QEventTransition()
state1 = QState()
state2 = QState()
states = [state1, state2]
- refcount1 = getrefcount(state1)
- refcount2 = getrefcount(state2)
+ refcount1 = sys.getrefcount(state1)
+ refcount2 = sys.getrefcount(state2)
transition.setTargetStates(states)
self.assertEqual(transition.targetStates(), states)
self.assertEqual(transition.targetState(), state1)
- self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
- self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[1]), refcount2 + 1)
del states
del transition
- self.assertEqual(getrefcount(state1), refcount1 - 1)
- self.assertEqual(getrefcount(state2), refcount2 - 1)
+ self.assertEqual(sys.getrefcount(state1), refcount1 - 1)
+ self.assertEqual(sys.getrefcount(state2), refcount2 - 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountOfTargetStatesAfterSingleTargetState(self):
transition = QEventTransition()
state0 = QState()
- refcount0 = getrefcount(state0)
+ refcount0 = sys.getrefcount(state0)
transition.setTargetState(state0)
self.assertEqual(transition.targetState(), state0)
- self.assertEqual(getrefcount(transition.targetState()), refcount0 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetState()), refcount0 + 1)
state1 = QState()
state2 = QState()
states = [state1, state2]
- refcount1 = getrefcount(state1)
- refcount2 = getrefcount(state2)
+ refcount1 = sys.getrefcount(state1)
+ refcount2 = sys.getrefcount(state2)
transition.setTargetStates(states)
- self.assertEqual(getrefcount(state0), refcount0)
+ self.assertEqual(sys.getrefcount(state0), refcount0)
self.assertEqual(transition.targetStates(), states)
self.assertEqual(transition.targetState(), state1)
- self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
- self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[1]), refcount2 + 1)
del states
del transition
- self.assertEqual(getrefcount(state1), refcount1 - 1)
- self.assertEqual(getrefcount(state2), refcount2 - 1)
+ self.assertEqual(sys.getrefcount(state1), refcount1 - 1)
+ self.assertEqual(sys.getrefcount(state2), refcount2 - 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountOfTargetStatesBeforeSingleTargetState(self):
transition = QEventTransition()
state1 = QState()
state2 = QState()
states = [state1, state2]
- refcount1 = getrefcount(state1)
- refcount2 = getrefcount(state2)
+ refcount1 = sys.getrefcount(state1)
+ refcount2 = sys.getrefcount(state2)
transition.setTargetStates(states)
self.assertEqual(transition.targetStates(), states)
self.assertEqual(transition.targetState(), state1)
- self.assertEqual(getrefcount(transition.targetStates()[0]), refcount1 + 1)
- self.assertEqual(getrefcount(transition.targetStates()[1]), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[0]), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetStates()[1]), refcount2 + 1)
state3 = QState()
- refcount3 = getrefcount(state3)
+ refcount3 = sys.getrefcount(state3)
transition.setTargetState(state3)
self.assertEqual(transition.targetState(), state3)
- self.assertEqual(getrefcount(transition.targetState()), refcount3 + 1)
+ self.assertEqual(sys.getrefcount(transition.targetState()), refcount3 + 1)
del states
- self.assertEqual(getrefcount(state1), refcount1 - 1)
- self.assertEqual(getrefcount(state2), refcount2 - 1)
+ self.assertEqual(sys.getrefcount(state1), refcount1 - 1)
+ self.assertEqual(sys.getrefcount(state2), refcount2 - 1)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtSvg/qsvggenerator_test.py b/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
index c0d94fa17..2dd65047e 100644
--- a/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
+++ b/sources/pyside6/tests/QtSvg/qsvggenerator_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -44,28 +43,29 @@ from PySide6.QtSvg import QSvgGenerator
class QSvgGeneratorTest(unittest.TestCase):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountOfTOutputDevice(self):
generator = QSvgGenerator()
iodevice1 = QBuffer()
- refcount1 = getrefcount(iodevice1)
+ refcount1 = sys.getrefcount(iodevice1)
generator.setOutputDevice(iodevice1)
self.assertEqual(generator.outputDevice(), iodevice1)
- self.assertEqual(getrefcount(generator.outputDevice()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(generator.outputDevice()), refcount1 + 1)
iodevice2 = QBuffer()
- refcount2 = getrefcount(iodevice2)
+ refcount2 = sys.getrefcount(iodevice2)
generator.setOutputDevice(iodevice2)
self.assertEqual(generator.outputDevice(), iodevice2)
- self.assertEqual(getrefcount(generator.outputDevice()), refcount2 + 1)
- self.assertEqual(getrefcount(iodevice1), refcount1)
+ self.assertEqual(sys.getrefcount(generator.outputDevice()), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(iodevice1), refcount1)
del generator
- self.assertEqual(getrefcount(iodevice2), refcount2)
+ self.assertEqual(sys.getrefcount(iodevice2), refcount2)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtUiTools/bug_909.py b/sources/pyside6/tests/QtUiTools/bug_909.py
index 99c80aa09..be6376735 100644
--- a/sources/pyside6/tests/QtUiTools/bug_909.py
+++ b/sources/pyside6/tests/QtUiTools/bug_909.py
@@ -43,6 +43,7 @@ from helper.usesqapplication import UsesQApplication
class TestDestruction(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testBug909(self):
file = Path(__file__).resolve().parent / 'bug_909.ui'
self.assertTrue(file.is_file())
diff --git a/sources/pyside6/tests/QtWidgets/bug_1002.py b/sources/pyside6/tests/QtWidgets/bug_1002.py
index ab9cee147..756d936ee 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1002.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1002.py
@@ -41,6 +41,7 @@ from helper.usesqapplication import UsesQApplication
class TestBug1002 (UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReturnWindow(self):
widget = QWidget()
button = QPushButton(widget)
diff --git a/sources/pyside6/tests/QtWidgets/bug_1006.py b/sources/pyside6/tests/QtWidgets/bug_1006.py
index 9a1b7e653..81639c34c 100644
--- a/sources/pyside6/tests/QtWidgets/bug_1006.py
+++ b/sources/pyside6/tests/QtWidgets/bug_1006.py
@@ -91,6 +91,7 @@ class TestBug1006 (TimedQApplication):
item = layout.itemAt(0)
self.assertTrue(isinstance(item.widget(), QWidget))
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRemoveOrphanWidget(self):
widget = QLabel()
layout = QHBoxLayout()
@@ -101,6 +102,7 @@ class TestBug1006 (TimedQApplication):
widget.setObjectName("MyWidget")
self.assertEqual(sys.getrefcount(widget), 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRemoveChildWidget(self):
parent = QLabel()
widget = QLabel(parent)
diff --git a/sources/pyside6/tests/QtWidgets/bug_547.py b/sources/pyside6/tests/QtWidgets/bug_547.py
index 984a0c858..f5a321228 100644
--- a/sources/pyside6/tests/QtWidgets/bug_547.py
+++ b/sources/pyside6/tests/QtWidgets/bug_547.py
@@ -45,6 +45,7 @@ from PySide6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
class MyMainWindow(unittest.TestCase):
app = QApplication(sys.argv)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCase1(self):
self._tree = QTreeWidget()
self._tree.setColumnCount(2)
@@ -62,6 +63,7 @@ class MyMainWindow(unittest.TestCase):
self.assertEqual(sys.getrefcount(self._i1), 3)
self.assertEqual(sys.getrefcount(self._i11), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCase2(self):
self._tree = QTreeWidget()
self._tree.setColumnCount(2)
@@ -78,6 +80,7 @@ class MyMainWindow(unittest.TestCase):
self.assertEqual(sys.getrefcount(self._i1), 3)
self.assertEqual(sys.getrefcount(self._i11), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def _updateTree(self):
self._tree.clear()
if self._i1 and self._i11:
diff --git a/sources/pyside6/tests/QtWidgets/bug_576.py b/sources/pyside6/tests/QtWidgets/bug_576.py
index b148f7c89..7a078ce9d 100644
--- a/sources/pyside6/tests/QtWidgets/bug_576.py
+++ b/sources/pyside6/tests/QtWidgets/bug_576.py
@@ -48,6 +48,7 @@ class Bug576(unittest.TestCase):
self._destroyed = True
self.assertTrue(isinstance(button, QPushButton))
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testWidgetParent(self):
self._destroyed = False
app = QApplication(sys.argv)
diff --git a/sources/pyside6/tests/QtWidgets/bug_585.py b/sources/pyside6/tests/QtWidgets/bug_585.py
index 82d581af9..05a9cf3d8 100644
--- a/sources/pyside6/tests/QtWidgets/bug_585.py
+++ b/sources/pyside6/tests/QtWidgets/bug_585.py
@@ -41,6 +41,7 @@ from PySide6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
class Bug585(unittest.TestCase):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCase(self):
app = QApplication([])
self._tree = QTreeWidget()
diff --git a/sources/pyside6/tests/QtWidgets/bug_674.py b/sources/pyside6/tests/QtWidgets/bug_674.py
index 95e32edd1..ca66271f6 100644
--- a/sources/pyside6/tests/QtWidgets/bug_674.py
+++ b/sources/pyside6/tests/QtWidgets/bug_674.py
@@ -40,6 +40,7 @@ from PySide6.QtWidgets import QApplication, QGraphicsScene
class TestBug679(unittest.TestCase):
'''QGraphicsScene::clear() is missing'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testIt(self):
app = QApplication([])
diff --git a/sources/pyside6/tests/QtWidgets/bug_811.py b/sources/pyside6/tests/QtWidgets/bug_811.py
index 38fbd652c..bfcd30f05 100644
--- a/sources/pyside6/tests/QtWidgets/bug_811.py
+++ b/sources/pyside6/tests/QtWidgets/bug_811.py
@@ -49,6 +49,7 @@ class TestUserData(QTextBlockUserData):
class TestUserDataRefCount(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefcount(self):
textedit = QTextEdit()
textedit.setReadOnly(True)
diff --git a/sources/pyside6/tests/QtWidgets/event_filter_test.py b/sources/pyside6/tests/QtWidgets/event_filter_test.py
index aee5a2926..08ca8c7b3 100644
--- a/sources/pyside6/tests/QtWidgets/event_filter_test.py
+++ b/sources/pyside6/tests/QtWidgets/event_filter_test.py
@@ -48,6 +48,7 @@ class MyFilter(QObject):
class EventFilter(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCount(self):
o = QObject()
filt = MyFilter()
diff --git a/sources/pyside6/tests/QtWidgets/keep_reference_test.py b/sources/pyside6/tests/QtWidgets/keep_reference_test.py
index 1766f16ee..9c661feeb 100644
--- a/sources/pyside6/tests/QtWidgets/keep_reference_test.py
+++ b/sources/pyside6/tests/QtWidgets/keep_reference_test.py
@@ -37,7 +37,6 @@ sys.path.append(os.fspath(Path(__file__).resolve().parents[1]))
from init_paths import init_test_paths
init_test_paths(False)
-from sys import getrefcount
from helper.usesqapplication import UsesQApplication
from PySide6.QtCore import QAbstractTableModel
from PySide6.QtWidgets import QTableView
@@ -73,32 +72,34 @@ class KeepReferenceTest(UsesQApplication):
samemodel = view.model()
self.assertEqual(model, samemodel)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCounting(self):
'''Tests reference count of model object referred by view objects.'''
model1 = TestModel()
- refcount1 = getrefcount(model1)
+ refcount1 = sys.getrefcount(model1)
view1 = QTableView()
view1.setModel(model1)
- self.assertEqual(getrefcount(view1.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view1.model()), refcount1 + 1)
view2 = QTableView()
view2.setModel(model1)
- self.assertEqual(getrefcount(view2.model()), refcount1 + 2)
+ self.assertEqual(sys.getrefcount(view2.model()), refcount1 + 2)
model2 = TestModel()
view2.setModel(model2)
- self.assertEqual(getrefcount(view1.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view1.model()), refcount1 + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCountingWhenDeletingReferrer(self):
'''Tests reference count of model object referred by deceased view object.'''
model = TestModel()
- refcount1 = getrefcount(model)
+ refcount1 = sys.getrefcount(model)
view = QTableView()
view.setModel(model)
- self.assertEqual(getrefcount(view.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view.model()), refcount1 + 1)
del view
- self.assertEqual(getrefcount(model), refcount1)
+ self.assertEqual(sys.getrefcount(model), refcount1)
def testReferreedObjectSurvivalAfterContextEnd(self):
'''Model object assigned to a view object must survive after getting out of context.'''
diff --git a/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py b/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
index 255119562..e7e61e75a 100644
--- a/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlayout_ref_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -64,28 +63,30 @@ class SaveReference(UsesQApplication):
del self.widget1
super(SaveReference, self).tearDown()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def checkLayoutReference(self, layout):
# Checks the reference cound handling of layout.addWidget
- self.assertEqual(getrefcount(self.widget1), 2)
+ self.assertEqual(sys.getrefcount(self.widget1), 2)
layout.addWidget(self.widget1)
- self.assertEqual(getrefcount(self.widget1), 3)
+ self.assertEqual(sys.getrefcount(self.widget1), 3)
- self.assertEqual(getrefcount(self.widget2), 2)
+ self.assertEqual(sys.getrefcount(self.widget2), 2)
layout.addWidget(self.widget2)
- self.assertEqual(getrefcount(self.widget2), 3)
+ self.assertEqual(sys.getrefcount(self.widget2), 3)
# Check if doesn't mess around with previous widget refcount
- self.assertEqual(getrefcount(self.widget1), 3)
+ self.assertEqual(sys.getrefcount(self.widget1), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testMoveLayout(self):
l = QHBoxLayout()
- self.assertEqual(getrefcount(self.widget1), 2)
+ self.assertEqual(sys.getrefcount(self.widget1), 2)
l.addWidget(self.widget1)
- self.assertEqual(getrefcount(self.widget1), 3)
+ self.assertEqual(sys.getrefcount(self.widget1), 3)
w = QWidget()
w.setLayout(l)
- self.assertEqual(getrefcount(self.widget1), 3)
+ self.assertEqual(sys.getrefcount(self.widget1), 3)
def testHBoxReference(self):
# QHBoxLayout.addWidget reference count
@@ -133,18 +134,20 @@ class MultipleAdd(UsesQApplication):
del self.win
super(MultipleAdd, self).tearDown()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCount(self):
# Multiple QLayout.addWidget calls on the same widget
- self.assertEqual(getrefcount(self.widget), 2)
+ self.assertEqual(sys.getrefcount(self.widget), 2)
self.layout.addWidget(self.widget)
- self.assertEqual(getrefcount(self.widget), 3)
+ self.assertEqual(sys.getrefcount(self.widget), 3)
self.layout.addWidget(self.widget)
- self.assertEqual(getrefcount(self.widget), 3)
+ self.assertEqual(sys.getrefcount(self.widget), 3)
self.layout.addWidget(self.widget)
- self.assertEqual(getrefcount(self.widget), 3)
+ self.assertEqual(sys.getrefcount(self.widget), 3)
class InternalAdd(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testInternalRef(self):
mw = QWidget()
w = QWidget()
@@ -153,35 +156,35 @@ class InternalAdd(UsesQApplication):
topLayout = QGridLayout()
# unique reference
- self.assertEqual(getrefcount(w), 2)
- self.assertEqual(getrefcount(ow), 2)
+ self.assertEqual(sys.getrefcount(w), 2)
+ self.assertEqual(sys.getrefcount(ow), 2)
topLayout.addWidget(w, 0, 0)
topLayout.addWidget(ow, 1, 0)
# layout keep the referemce
- self.assertEqual(getrefcount(w), 3)
- self.assertEqual(getrefcount(ow), 3)
+ self.assertEqual(sys.getrefcount(w), 3)
+ self.assertEqual(sys.getrefcount(ow), 3)
mainLayout = QGridLayout()
mainLayout.addLayout(topLayout, 1, 0, 1, 4)
# the same reference
- self.assertEqual(getrefcount(w), 3)
- self.assertEqual(getrefcount(ow), 3)
+ self.assertEqual(sys.getrefcount(w), 3)
+ self.assertEqual(sys.getrefcount(ow), 3)
mw.setLayout(mainLayout)
# now trasfer the ownership to mw
- self.assertEqual(getrefcount(w), 3)
- self.assertEqual(getrefcount(ow), 3)
+ self.assertEqual(sys.getrefcount(w), 3)
+ self.assertEqual(sys.getrefcount(ow), 3)
del mw
# remove the ref and invalidate the widget
- self.assertEqual(getrefcount(w), 2)
- self.assertEqual(getrefcount(ow), 2)
+ self.assertEqual(sys.getrefcount(w), 2)
+ self.assertEqual(sys.getrefcount(ow), 2)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/QtWidgets/qlayout_test.py b/sources/pyside6/tests/QtWidgets/qlayout_test.py
index 4230470b7..57855fc05 100644
--- a/sources/pyside6/tests/QtWidgets/qlayout_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlayout_test.py
@@ -89,6 +89,7 @@ class MissingItemAtLayout(QLayout):
class QLayoutTest(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testOwnershipTransfer(self):
b = QPushButton("teste")
l = MyLayout()
@@ -104,6 +105,7 @@ class QLayoutTest(UsesQApplication):
self.assertEqual(sys.getrefcount(b), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceTransfer(self):
b = QPushButton("teste")
l = QHBoxLayout()
diff --git a/sources/pyside6/tests/QtWidgets/qlistwidget_test.py b/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
index 3746d3675..d5b82070b 100644
--- a/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
+++ b/sources/pyside6/tests/QtWidgets/qlistwidget_test.py
@@ -42,6 +42,7 @@ from helper.usesqapplication import UsesQApplication
class QListWidgetTest(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def populateList(self, lst):
o = QObject()
o.setObjectName("obj")
@@ -54,10 +55,12 @@ class QListWidgetTest(UsesQApplication):
lst.addItem(item)
self.assertTrue(sys.getrefcount(item), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def checkCurrentItem(self, lst):
item = lst.currentItem()
self.assertTrue(sys.getrefcount(item), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def checkItemData(self, lst):
item = lst.currentItem()
o = item.data(Qt.UserRole)
@@ -65,6 +68,7 @@ class QListWidgetTest(UsesQApplication):
self.assertEqual(o, item._data)
self.assertTrue(sys.getrefcount(o), 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testConstructorWithParent(self):
lst = QListWidget()
self.populateList(lst)
diff --git a/sources/pyside6/tests/QtWidgets/qmainwindow_test.py b/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
index 5d6018b28..5201bfdb8 100644
--- a/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
+++ b/sources/pyside6/tests/QtWidgets/qmainwindow_test.py
@@ -73,6 +73,7 @@ class TestMainWindow(UsesQApplication):
def objDel(self, obj):
self.app.quit()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountToNull(self):
w = QMainWindow()
c = QWidget()
@@ -84,6 +85,7 @@ class TestMainWindow(UsesQApplication):
c = None
self.app.exec()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountToAnother(self):
w = QMainWindow()
c = QWidget()
diff --git a/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py b/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py
index ddc9d2245..97fe18119 100644
--- a/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py
+++ b/sources/pyside6/tests/QtWidgets/qstandarditemmodel_test.py
@@ -66,6 +66,7 @@ class QStandardItemModelTest(UsesQApplication):
class QStandardItemModelRef(UsesQApplication):
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCount(self):
model = QStandardItemModel(5, 5)
items = []
diff --git a/sources/pyside6/tests/QtWidgets/qstyle_test.py b/sources/pyside6/tests/QtWidgets/qstyle_test.py
index 6993e8b90..1f837cda6 100644
--- a/sources/pyside6/tests/QtWidgets/qstyle_test.py
+++ b/sources/pyside6/tests/QtWidgets/qstyle_test.py
@@ -88,6 +88,7 @@ class SetStyleTest(UsesQApplication):
QApplication.instance().processEvents()
self.assertTrue(proxyStyle.polished > 0)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testSetStyleOwnership(self):
style = QStyleFactory.create(QStyleFactory.keys()[0])
self.assertEqual(sys.getrefcount(style), 2)
diff --git a/sources/pyside6/tests/QtWidgets/qtextedit_test.py b/sources/pyside6/tests/QtWidgets/qtextedit_test.py
index 28f435f94..bb6b98009 100644
--- a/sources/pyside6/tests/QtWidgets/qtextedit_test.py
+++ b/sources/pyside6/tests/QtWidgets/qtextedit_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -53,16 +52,17 @@ class DontTouchReference(UsesQApplication):
self.cursor = self.editor.textCursor()
self.table = self.cursor.insertTable(1, 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testQTextTable(self):
# methods which return QTextTable should not increment its reference
- self.assertEqual(getrefcount(self.table), 2)
+ self.assertEqual(sys.getrefcount(self.table), 2)
f = self.cursor.currentFrame()
del f
- self.assertEqual(getrefcount(self.table), 2)
+ self.assertEqual(sys.getrefcount(self.table), 2)
# destroying the cursor should not raise any "RuntimeError: internal
# C++ object already deleted." when accessing the QTextTable
del self.cursor
- self.assertEqual(getrefcount(self.table), 2)
+ self.assertEqual(sys.getrefcount(self.table), 2)
cell = self.table.cellAt(0, 0)
diff --git a/sources/pyside6/tests/QtWidgets/reference_count_test.py b/sources/pyside6/tests/QtWidgets/reference_count_test.py
index 00ebab4c3..92c63fac8 100644
--- a/sources/pyside6/tests/QtWidgets/reference_count_test.py
+++ b/sources/pyside6/tests/QtWidgets/reference_count_test.py
@@ -68,6 +68,7 @@ class ReferenceCount(UsesQApplication):
def tearDown(self):
super(ReferenceCount, self).tearDown()
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def beforeTest(self):
points = [QPointF(0, 0), QPointF(100, 100), QPointF(0, 100)]
pol = self.scene.addPolygon(QPolygonF(points))
@@ -77,6 +78,7 @@ class ReferenceCount(UsesQApplication):
# refcount need be 3 because one ref for QGraphicsScene, and one to rect obj
self.assertEqual(sys.getrefcount(pol), 3)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCount(self):
global destroyedRect
global destroyedPol
diff --git a/sources/pyside6/tests/signals/ref03_test.py b/sources/pyside6/tests/signals/ref03_test.py
index 01fba47f9..8274c9439 100644
--- a/sources/pyside6/tests/signals/ref03_test.py
+++ b/sources/pyside6/tests/signals/ref03_test.py
@@ -31,7 +31,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -50,16 +49,17 @@ class DisconnectSignalsTest(unittest.TestCase):
def tearDown(self):
del self.emitter
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testConnectionRefCount(self):
def destroyedSlot():
pass
- self.assertEqual(getrefcount(destroyedSlot), 2)
+ self.assertEqual(sys.getrefcount(destroyedSlot), 2)
self.emitter.destroyed.connect(destroyedSlot)
- self.assertEqual(getrefcount(destroyedSlot), 3)
+ self.assertEqual(sys.getrefcount(destroyedSlot), 3)
self.emitter.destroyed.disconnect(destroyedSlot)
- self.assertEqual(getrefcount(destroyedSlot), 2)
+ self.assertEqual(sys.getrefcount(destroyedSlot), 2)
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/signal_manager_refcount_test.py b/sources/pyside6/tests/signals/signal_manager_refcount_test.py
index c3170f7a2..88f0a8a14 100644
--- a/sources/pyside6/tests/signals/signal_manager_refcount_test.py
+++ b/sources/pyside6/tests/signals/signal_manager_refcount_test.py
@@ -31,7 +31,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -45,16 +44,17 @@ from PySide6.QtCore import QObject, SIGNAL
class SignalManagerRefCount(unittest.TestCase):
"""Simple test case to check if the signal_manager is erroneously incrementing the object refcounter"""
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testObjectRefcount(self):
"""Emission of QObject.destroyed() to a python slot"""
def callback():
pass
obj = QObject()
- refcount = getrefcount(obj)
+ refcount = sys.getrefcount(obj)
obj.destroyed.connect(callback)
- self.assertEqual(refcount, getrefcount(obj))
+ self.assertEqual(refcount, sys.getrefcount(obj))
QObject.disconnect(obj, SIGNAL('destroyed()'), callback)
- self.assertEqual(refcount, getrefcount(obj))
+ self.assertEqual(refcount, sys.getrefcount(obj))
if __name__ == '__main__':
diff --git a/sources/pyside6/tests/signals/slot_reference_count_test.py b/sources/pyside6/tests/signals/slot_reference_count_test.py
index 54b904f42..5ab8ca6e9 100644
--- a/sources/pyside6/tests/signals/slot_reference_count_test.py
+++ b/sources/pyside6/tests/signals/slot_reference_count_test.py
@@ -30,7 +30,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -54,17 +53,18 @@ class PythonSignalRefCount(unittest.TestCase):
def tearDown(self):
self.emitter
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCount(self):
def cb(*args):
pass
- self.assertEqual(getrefcount(cb), 2)
+ self.assertEqual(sys.getrefcount(cb), 2)
QObject.connect(self.emitter, SIGNAL('foo()'), cb)
- self.assertEqual(getrefcount(cb), 3)
+ self.assertEqual(sys.getrefcount(cb), 3)
QObject.disconnect(self.emitter, SIGNAL('foo()'), cb)
- self.assertEqual(getrefcount(cb), 2)
+ self.assertEqual(sys.getrefcount(cb), 2)
class CppSignalRefCount(unittest.TestCase):
@@ -75,17 +75,18 @@ class CppSignalRefCount(unittest.TestCase):
def tearDown(self):
self.emitter
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCount(self):
def cb(*args):
pass
- self.assertEqual(getrefcount(cb), 2)
+ self.assertEqual(sys.getrefcount(cb), 2)
self.emitter.destroyed.connect(cb)
- self.assertEqual(getrefcount(cb), 3)
+ self.assertEqual(sys.getrefcount(cb), 3)
QObject.disconnect(self.emitter, SIGNAL('destroyed()'), cb)
- self.assertEqual(getrefcount(cb), 2)
+ self.assertEqual(sys.getrefcount(cb), 2)
if __name__ == '__main__':
diff --git a/sources/shiboken6/tests/samplebinding/class_fields_test.py b/sources/shiboken6/tests/samplebinding/class_fields_test.py
index a29c84b1a..44d32ce39 100644
--- a/sources/shiboken6/tests/samplebinding/class_fields_test.py
+++ b/sources/shiboken6/tests/samplebinding/class_fields_test.py
@@ -33,7 +33,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -141,34 +140,38 @@ class TestAccessingCppFields(unittest.TestCase):
# attribution with invalid type
self.assertRaises(TypeError, lambda : setattr(d, 'objectTypeField', 123))
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountingAccessingObjectTypeField(self):
'''Accessing a object type field should respect the reference counting rules.'''
d = Derived()
# attributing object to instance's field should increase its reference count
o1 = ObjectType()
- refcount1 = getrefcount(o1)
+ refcount1 = sys.getrefcount(o1)
d.objectTypeField = o1
self.assertEqual(d.objectTypeField, o1)
- self.assertEqual(getrefcount(d.objectTypeField), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(d.objectTypeField), refcount1 + 1)
- # attributing a new object to instance's field should decrease the previous object's reference count
+ # attributing a new object to instance's field should decrease the previous
+ # object's reference count
o2 = ObjectType()
- refcount2 = getrefcount(o2)
+ refcount2 = sys.getrefcount(o2)
d.objectTypeField = o2
self.assertEqual(d.objectTypeField, o2)
- self.assertEqual(getrefcount(o1), refcount1)
- self.assertEqual(getrefcount(d.objectTypeField), refcount2 + 1)
+ self.assertEqual(sys.getrefcount(o1), refcount1)
+ self.assertEqual(sys.getrefcount(d.objectTypeField), refcount2 + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRefCountingOfReferredObjectAfterDeletingReferrer(self):
- '''Deleting the object referring to other object should decrease the reference count of the referee.'''
+ '''Deleting the object referring to other object should decrease the
+ reference count of the referee.'''
d = Derived()
o = ObjectType()
- refcount = getrefcount(o)
+ refcount = sys.getrefcount(o)
d.objectTypeField = o
- self.assertEqual(getrefcount(o), refcount + 1)
+ self.assertEqual(sys.getrefcount(o), refcount + 1)
del d
- self.assertEqual(getrefcount(o), refcount)
+ self.assertEqual(sys.getrefcount(o), refcount)
def testStaticField(self):
self.assertEqual(Derived.staticPrimitiveField, 0)
diff --git a/sources/shiboken6/tests/samplebinding/keep_reference_test.py b/sources/shiboken6/tests/samplebinding/keep_reference_test.py
index b68b52e9d..8e900489d 100644
--- a/sources/shiboken6/tests/samplebinding/keep_reference_test.py
+++ b/sources/shiboken6/tests/samplebinding/keep_reference_test.py
@@ -33,7 +33,6 @@
import os
import sys
-from sys import getrefcount
import unittest
from pathlib import Path
@@ -46,32 +45,34 @@ from sample import ObjectModel, ObjectView
class TestKeepReference(unittest.TestCase):
'''Test case for objects that keep references to other object without owning them (e.g. model/view relationships).'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCounting(self):
'''Tests reference count of model-like object referred by view-like objects.'''
model1 = ObjectModel()
- refcount1 = getrefcount(model1)
+ refcount1 = sys.getrefcount(model1)
view1 = ObjectView()
view1.setModel(model1)
- self.assertEqual(getrefcount(view1.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view1.model()), refcount1 + 1)
view2 = ObjectView()
view2.setModel(model1)
- self.assertEqual(getrefcount(view2.model()), refcount1 + 2)
+ self.assertEqual(sys.getrefcount(view2.model()), refcount1 + 2)
model2 = ObjectModel()
view2.setModel(model2)
- self.assertEqual(getrefcount(view1.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view1.model()), refcount1 + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCountingWhenDeletingReferrer(self):
'''Tests reference count of model-like object referred by deceased view-like object.'''
model = ObjectModel()
- refcount1 = getrefcount(model)
+ refcount1 = sys.getrefcount(model)
view = ObjectView()
view.setModel(model)
- self.assertEqual(getrefcount(view.model()), refcount1 + 1)
+ self.assertEqual(sys.getrefcount(view.model()), refcount1 + 1)
del view
- self.assertEqual(getrefcount(model), refcount1)
+ self.assertEqual(sys.getrefcount(model), refcount1)
def testReferreedObjectSurvivalAfterContextEnd(self):
'''Model-like object assigned to a view-like object must survive after get out of context.'''
diff --git a/sources/shiboken6/tests/samplebinding/multiple_derived_test.py b/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
index 08a13445d..0c40a4fd1 100644
--- a/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
+++ b/sources/shiboken6/tests/samplebinding/multiple_derived_test.py
@@ -92,6 +92,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertTrue(issubclass(ExtMDerived1, Base1))
self.assertTrue(issubclass(ExtMDerived1, Base2))
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived1ToBases(self):
'''MDerived1 is casted by C++ to its parents and the binding must return the MDerived1 wrapper.'''
a = MDerived1()
@@ -104,6 +105,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b2)
self.assertEqual(sys.getrefcount(a), refcnt + 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromExtMDerived1ToMDerived1Bases(self):
'''Python defined class ExtMDerived1 is casted by C++ to MDerived1 parents and the binding must return the correct ExtMDerived1 instance.'''
a = ExtMDerived1()
@@ -118,6 +120,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b2)
self.assertEqual(sys.getrefcount(a), refcnt + 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromSonOfMDerived1ToBases(self):
'''SonOfMDerived1 is casted by C++ to its parents and the binding must return the SonOfMDerived1 wrapper.'''
a = SonOfMDerived1()
@@ -138,6 +141,7 @@ class MultipleDerivedTest(unittest.TestCase):
value = a.base2Method()
self.assertTrue(value, Base2.base2Method(a) * a.multiplier)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived2ToBases(self):
'''MDerived2 is casted by C++ to its parents and the binding must return the MDerived2 wrapper.'''
a = MDerived2()
@@ -156,6 +160,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b6)
self.assertEqual(sys.getrefcount(a), refcnt + 4)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived3ToBases(self):
'''MDerived3 is casted by C++ to its parents and the binding must return the MDerived3 wrapper.'''
a = MDerived3()
@@ -186,6 +191,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b6)
self.assertEqual(sys.getrefcount(a), refcnt + 8)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived4ToBases(self):
'''MDerived4 is casted by C++ to its parents and the binding must return the MDerived4 wrapper.'''
a = MDerived4()
@@ -198,6 +204,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b4)
self.assertEqual(sys.getrefcount(a), refcnt + 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived5ToBases(self):
'''MDerived5 is casted by C++ to its parents and the binding must return the MDerived5 wrapper.'''
a = MDerived5()
@@ -210,6 +217,7 @@ class MultipleDerivedTest(unittest.TestCase):
self.assertEqual(a, b4)
self.assertEqual(sys.getrefcount(a), refcnt + 2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testCastFromMDerived3ToBase3(self):
'''MDerived3 is casted by C++ to Base3 grandparent using both the inherited and reimplement castToBase3 methods.'''
a = MDerived3()
diff --git a/sources/shiboken6/tests/samplebinding/objecttype_test.py b/sources/shiboken6/tests/samplebinding/objecttype_test.py
index fb655c435..58036a458 100644
--- a/sources/shiboken6/tests/samplebinding/objecttype_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttype_test.py
@@ -75,6 +75,7 @@ class ObjectTypeTest(unittest.TestCase):
o.setNullObject(None)
self.assertEqual(o.callId(), 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentFromCpp(self):
o = ObjectType()
self.assertEqual(sys.getrefcount(o), 2)
@@ -113,6 +114,7 @@ class ObjectTypeTest(unittest.TestCase):
Shiboken.invalidate(parents)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testClassDecref(self):
# Bug was that class PyTypeObject wasn't decrefed when instance died
before = sys.getrefcount(ObjectType)
diff --git a/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py b/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
index 76f028f51..10b2f0ca9 100644
--- a/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
+++ b/sources/shiboken6/tests/samplebinding/objecttypelayout_test.py
@@ -46,6 +46,7 @@ from sample import *
class ObjectTypeLayoutTest(unittest.TestCase):
'''Test cases for ObjectTypeLayout class.'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testOwnershipOverride(self):
l = ObjectTypeLayout()
diff --git a/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py b/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
index 1f0d76cce..310bf08ee 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_delete_parent_test.py
@@ -46,6 +46,7 @@ from sample import ObjectType
class DeleteParentTest(unittest.TestCase):
'''Test case for deleting a parent object'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentDestructor(self):
'''Delete parent object should invalidate child'''
parent = ObjectType()
@@ -58,6 +59,7 @@ class DeleteParentTest(unittest.TestCase):
self.assertRaises(RuntimeError, child.objectName)
self.assertEqual(sys.getrefcount(child), refcount_before-1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testParentDestructorMultipleChildren(self):
'''Delete parent object should invalidate all children'''
parent = ObjectType()
@@ -71,6 +73,7 @@ class DeleteParentTest(unittest.TestCase):
self.assertRaises(RuntimeError, child.objectName)
self.assertEqual(sys.getrefcount(child), 4)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testRecursiveParentDelete(self):
'''Delete parent should invalidate grandchildren'''
parent = ObjectType()
diff --git a/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py b/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
index d0b363790..0a5718429 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_reparenting_test.py
@@ -65,6 +65,7 @@ class ReparentingTest(unittest.TestCase):
for child in new_parent.children():
self.assertTrue(child in object_list)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReparentWithTheSameParent(self):
'''Set the same parent twice to check if the ref continue the same'''
obj = ObjectType()
diff --git a/sources/shiboken6/tests/samplebinding/ownership_transference_test.py b/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
index 3cea6b3fb..9d9492e29 100644
--- a/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
+++ b/sources/shiboken6/tests/samplebinding/ownership_transference_test.py
@@ -45,6 +45,7 @@ from sample import ObjectType, BlackBox
class BlackBoxTest(unittest.TestCase):
'''The BlackBox class has cases of ownership transference between C++ and Python.'''
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testOwnershipTransference(self):
'''Ownership transference from Python to C++ and back again.'''
o1 = ObjectType()
@@ -77,6 +78,7 @@ class BlackBoxTest(unittest.TestCase):
o3 = bb.retrieveObjectType(-5)
self.assertEqual(o3, None)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testOwnershipTransferenceCppCreated(self):
'''Ownership transference using a C++ created object.'''
o1 = ObjectType.create()
diff --git a/sources/shiboken6/tests/samplebinding/point_test.py b/sources/shiboken6/tests/samplebinding/point_test.py
index bffaba6df..457df0c16 100644
--- a/sources/shiboken6/tests/samplebinding/point_test.py
+++ b/sources/shiboken6/tests/samplebinding/point_test.py
@@ -84,6 +84,7 @@ class PointTest(unittest.TestCase):
pt2 += pt1
self.assertFalse(pt1 == pt2)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReturnConstPointer(self):
'''Point returns a const pointer for itself.'''
pt1 = Point(5.0, 2.3)
diff --git a/sources/shiboken6/tests/samplebinding/pointerholder_test.py b/sources/shiboken6/tests/samplebinding/pointerholder_test.py
index 3468ceedc..d34ee7355 100644
--- a/sources/shiboken6/tests/samplebinding/pointerholder_test.py
+++ b/sources/shiboken6/tests/samplebinding/pointerholder_test.py
@@ -52,6 +52,7 @@ class TestPointerHolder(unittest.TestCase):
ph = PointerHolder(a)
self.assertEqual(ph.pointer(), a)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testReferenceCounting(self):
'''Test reference counting when retrieving data with PointerHolder.pointer().'''
a = (1, 2, 3)
diff --git a/sources/shiboken6/tests/samplebinding/privatector_test.py b/sources/shiboken6/tests/samplebinding/privatector_test.py
index c5f7ee58a..b06c65944 100644
--- a/sources/shiboken6/tests/samplebinding/privatector_test.py
+++ b/sources/shiboken6/tests/samplebinding/privatector_test.py
@@ -67,6 +67,7 @@ class PrivateCtorTest(unittest.TestCase):
self.assertEqual(pd2, pd1)
self.assertEqual(pd2.instanceCalls(), calls + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testPrivateCtorRefCounting(self):
'''Test refcounting of the singleton returned by PrivateCtor.instance().'''
pd1 = PrivateCtor.instance()
diff --git a/sources/shiboken6/tests/samplebinding/privatedtor_test.py b/sources/shiboken6/tests/samplebinding/privatedtor_test.py
index f310ec51d..2f3b28069 100644
--- a/sources/shiboken6/tests/samplebinding/privatedtor_test.py
+++ b/sources/shiboken6/tests/samplebinding/privatedtor_test.py
@@ -68,6 +68,7 @@ class PrivateDtorTest(unittest.TestCase):
self.assertEqual(pd2, pd1)
self.assertEqual(pd2.instanceCalls(), calls + 1)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testPrivateDtorRefCounting(self):
'''Test refcounting of the singleton returned by PrivateDtor.instance().'''
pd1 = PrivateDtor.instance()
@@ -86,6 +87,7 @@ class PrivateDtorTest(unittest.TestCase):
self.assertEqual(pd3.instanceCalls(), calls + 2)
self.assertEqual(sys.getrefcount(pd3), refcnt)
+ @unittest.skipUnless(hasattr(sys, "getrefcount"), f"{sys.implementation.name} has no refcount")
def testClassDecref(self):
# Bug was that class PyTypeObject wasn't decrefed when instance
# was invalidated