aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests/pysidetest/property_python_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/tests/pysidetest/property_python_test.py')
-rw-r--r--sources/pyside2/tests/pysidetest/property_python_test.py231
1 files changed, 0 insertions, 231 deletions
diff --git a/sources/pyside2/tests/pysidetest/property_python_test.py b/sources/pyside2/tests/pysidetest/property_python_test.py
deleted file mode 100644
index 443977c90..000000000
--- a/sources/pyside2/tests/pysidetest/property_python_test.py
+++ /dev/null
@@ -1,231 +0,0 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of Qt for Python.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## 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 General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## 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-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-"""
-Test for PySide's Property
-==========================
-
-This test is copied from Python's `test_property.py` and adapted to
-the PySide Property implementation.
-
-This test is to ensure maximum compatibility.
-"""
-
-# Test case for property
-# more tests are in test_descr
-
-import os
-import sys
-import unittest
-
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from init_paths import init_test_paths
-init_test_paths(False)
-
-from PySide2.QtCore import Property, QObject
-#from PyQt5.QtCore import pyqtProperty as Property, QObject
-
-# This are the original imports.
-import sys
-import unittest
-has_test = False
-try:
- from test import support
- has_test = True
-except ImportError:
- pass
-
-class PropertyBase(Exception):
- pass
-
-class PropertyGet(PropertyBase):
- pass
-
-class PropertySet(PropertyBase):
- pass
-
-class PropertyDel(PropertyBase):
- pass
-
-class BaseClass(QObject):
- def __init__(self):
- QObject.__init__(self)
-
- self._spam = 5
-
- @Property(object)
- def spam(self):
- """BaseClass.getter"""
- return self._spam
-
- @spam.setter
- def spam(self, value):
- self._spam = value
-
- @spam.deleter
- def spam(self):
- del self._spam
-
-class SubClass(BaseClass):
-
- @BaseClass.spam.getter
- def spam(self):
- """SubClass.getter"""
- raise PropertyGet(self._spam)
-
- @spam.setter
- def spam(self, value):
- raise PropertySet(self._spam)
-
- @spam.deleter
- def spam(self):
- raise PropertyDel(self._spam)
-
-class PropertyDocBase(object):
- _spam = 1
- def _get_spam(self):
- return self._spam
- spam = Property(object, _get_spam, doc="spam spam spam")
-
-class PropertyDocSub(PropertyDocBase):
- @PropertyDocBase.spam.getter
- def spam(self):
- """The decorator does not use this doc string"""
- return self._spam
-
-class PropertySubNewGetter(BaseClass):
- @BaseClass.spam.getter
- def spam(self):
- """new docstring"""
- return 5
-
-class PropertyNewGetter(QObject):
- def __init__(self):
- QObject.__init__(self)
-
- @Property(object)
- def spam(self):
- """original docstring"""
- return 1
- @spam.getter
- def spam(self):
- """new docstring"""
- return 8
-
-class PropertyTests(unittest.TestCase):
- def test_property_decorator_baseclass(self):
- # see #1620
- base = BaseClass()
- self.assertEqual(base.spam, 5)
- self.assertEqual(base._spam, 5)
- base.spam = 10
- self.assertEqual(base.spam, 10)
- self.assertEqual(base._spam, 10)
- delattr(base, "spam")
- self.assertTrue(not hasattr(base, "spam"))
- self.assertTrue(not hasattr(base, "_spam"))
- base.spam = 20
- self.assertEqual(base.spam, 20)
- self.assertEqual(base._spam, 20)
-
- def test_property_decorator_subclass(self):
- # see #1620
- sub = SubClass()
- self.assertRaises(PropertyGet, getattr, sub, "spam")
- self.assertRaises(PropertySet, setattr, sub, "spam", None)
- self.assertRaises(PropertyDel, delattr, sub, "spam")
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_property_decorator_subclass_doc(self):
- sub = SubClass()
- self.assertEqual(sub.__class__.spam.__doc__, "SubClass.getter")
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_property_decorator_baseclass_doc(self):
- base = BaseClass()
- self.assertEqual(base.__class__.spam.__doc__, "BaseClass.getter")
-
- def test_property_decorator_doc(self):
- base = PropertyDocBase()
- sub = PropertyDocSub()
- self.assertEqual(base.__class__.spam.__doc__, "spam spam spam")
- self.assertEqual(sub.__class__.spam.__doc__, "spam spam spam")
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_property_getter_doc_override(self):
- newgettersub = PropertySubNewGetter()
- self.assertEqual(newgettersub.spam, 5)
- self.assertEqual(newgettersub.__class__.spam.__doc__, "new docstring")
- newgetter = PropertyNewGetter()
- self.assertEqual(newgetter.spam, 8)
- self.assertEqual(newgetter.__class__.spam.__doc__, "new docstring")
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_property_builtin_doc_writable(self):
- p = Property(object, doc='basic')
- self.assertEqual(p.__doc__, 'basic')
- p.__doc__ = 'extended'
- self.assertEqual(p.__doc__, 'extended')
-
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
- def test_property_decorator_doc_writable(self):
- class PropertyWritableDoc(object):
-
- @Property(object)
- def spam(self):
- """Eggs"""
- return "eggs"
-
- sub = PropertyWritableDoc()
- self.assertEqual(sub.__class__.spam.__doc__, 'Eggs')
- sub.__class__.spam.__doc__ = 'Spam'
- self.assertEqual(sub.__class__.spam.__doc__, 'Spam')
-
- if has_test: # This test has no support in Python 2
- @support.refcount_test
- def test_refleaks_in___init__(self):
- gettotalrefcount = support.get_attribute(sys, 'gettotalrefcount')
- fake_prop = Property(object, 'fget', 'fset', "freset", 'fdel', 'doc')
- refs_before = gettotalrefcount()
- for i in range(100):
- fake_prop.__init__(object, 'fget', 'fset', "freset", 'fdel', 'doc')
- self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10)
-
-
-# Note: We ignore the whole subclass tests concerning __doc__ strings.
-# See the original Python test starting with:
-# "Issue 5890: subclasses of property do not preserve method __doc__ strings"
-
-
-if __name__ == '__main__':
- unittest.main()