diff options
Diffstat (limited to 'sources/shiboken2/tests/samplebinding/class_fields_test.py')
-rw-r--r-- | sources/shiboken2/tests/samplebinding/class_fields_test.py | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/sources/shiboken2/tests/samplebinding/class_fields_test.py b/sources/shiboken2/tests/samplebinding/class_fields_test.py deleted file mode 100644 index 202efcafb..000000000 --- a/sources/shiboken2/tests/samplebinding/class_fields_test.py +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -############################################################################# -## -## Copyright (C) 2016 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$ -## -############################################################################# - -'''Simple test case for accessing the exposed C++ class fields.''' - -import os -import sys -from sys import getrefcount -import unittest - -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from shiboken_paths import init_paths -init_paths() - -from sample import Derived, Point, ObjectType - -class TestAccessingCppFields(unittest.TestCase): - '''Simple test case for accessing the exposed C++ class fields.''' - - def testAccessingPrimitiveTypeField(self): - '''Reads and writes a primitive type (in this case an 'int') field.''' - d = Derived() - self.assertEqual(type(d.primitiveField), int) - - # attribution - old_value = d.primitiveField - new_value = 2255 - d.primitiveField = new_value - self.assertEqual(d.primitiveField, new_value) - self.assertNotEqual(d.primitiveField, old_value) - - # attribution with a convertible type - value = 1.2 - d.primitiveField = value - self.assertEqual(d.primitiveField, int(value)) - - # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'primitiveField', None)) - - def testAccessingUsersPrimitiveTypeField(self): - '''Reads and writes an user's primitive type (in this case an 'Complex') field.''' - d = Derived() - self.assertEqual(type(d.userPrimitiveField), complex) - - # attribution - old_value = d.userPrimitiveField - new_value = complex(1.1, 2.2) - d.userPrimitiveField = new_value - self.assertEqual(d.userPrimitiveField, new_value) - self.assertNotEqual(d.userPrimitiveField, old_value) - - # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'userPrimitiveField', None)) - - def testAccessingValueTypeField(self): - '''Reads and writes a value type (in this case a 'Point') field.''' - d = Derived() - self.assertEqual(type(d.valueTypeField), Point) - - # attribution - old_value = d.valueTypeField - new_value = Point(-10, 537) - d.valueTypeField = new_value - self.assertEqual(d.valueTypeField, new_value) - - #object modify - d.valueTypeField.setX(10) - d.valueTypeField.setY(20) - self.assertEqual(d.valueTypeField.x(), 10) - self.assertEqual(d.valueTypeField.y(), 20) - - # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'valueTypeField', 123)) - - def testAccessingObjectTypeField(self): - '''Reads and writes a object type (in this case an 'ObjectType') field.''' - d = Derived() - - # attribution - old_value = d.objectTypeField - new_value = ObjectType() - d.objectTypeField = new_value - self.assertEqual(d.objectTypeField, new_value) - self.assertNotEqual(d.objectTypeField, old_value) - - # attribution with a convertible type - value = None - d.objectTypeField = value - self.assertEqual(d.objectTypeField, value) - - # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'objectTypeField', 123)) - - 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) - d.objectTypeField = o1 - self.assertEqual(d.objectTypeField, o1) - self.assertEqual(getrefcount(d.objectTypeField), refcount1 + 1) - - # attributing a new object to instance's field should decrease the previous object's reference count - o2 = ObjectType() - refcount2 = getrefcount(o2) - d.objectTypeField = o2 - self.assertEqual(d.objectTypeField, o2) - self.assertEqual(getrefcount(o1), refcount1) - self.assertEqual(getrefcount(d.objectTypeField), refcount2 + 1) - - def testRefCountingOfReferredObjectAfterDeletingReferrer(self): - '''Deleting the object referring to other object should decrease the reference count of the referee.''' - d = Derived() - o = ObjectType() - refcount = getrefcount(o) - d.objectTypeField = o - self.assertEqual(getrefcount(o), refcount + 1) - del d - self.assertEqual(getrefcount(o), refcount) - - def testStaticField(self): - self.assertEqual(Derived.staticPrimitiveField, 0) - - def testAccessingUnsignedIntBitField(self): - d = Derived() - - # attribution - old_value = d.bitField - new_value = 1 - d.bitField= new_value - self.assertEqual(d.bitField, new_value) - self.assertNotEqual(d.bitField, old_value) - - # attribution with a convertible type - value = 1.2 - d.bitField = value - self.assertEqual(d.bitField, int(value)) - - # attribution with invalid type - self.assertRaises(TypeError, lambda : setattr(d, 'bitField', None)) - - -if __name__ == '__main__': - unittest.main() |