aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/QtWidgets
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 /sources/pyside6/tests/QtWidgets
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>
Diffstat (limited to 'sources/pyside6/tests/QtWidgets')
-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
17 files changed, 62 insertions, 35 deletions
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