diff options
Diffstat (limited to 'tests/QtCore/qvariant_test.py')
-rw-r--r-- | tests/QtCore/qvariant_test.py | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/QtCore/qvariant_test.py b/tests/QtCore/qvariant_test.py new file mode 100644 index 000000000..5c23b4049 --- /dev/null +++ b/tests/QtCore/qvariant_test.py @@ -0,0 +1,141 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +'''Test cases for QVariant''' + +import unittest +import sys + +from PySide.QtCore import QSize, QVariant, QByteArray, QStringList, QString + + +class QVariantToNumber(unittest.TestCase): + '''QVariant of number types''' + + def testToNumberInt(self): + '''QVariant(int).toInt()''' + obj = QVariant('37') + self.assertEqual((37, True), obj.toInt()) + + def testToNumberLongLong(self): + '''QVariant(int).toLongLong()''' + obj = QVariant('37') + self.assertEqual((37, True), obj.toLongLong()) + + def testToNumberUInt(self): + '''QVariant(int).toUInt()''' + obj = QVariant('37') + self.assertEqual((37, True), obj.toUInt()) + + def testToNumberUIntNegative(self): + '''QVariant(negative int).toUInt()''' + obj = QVariant('-37') + self.assert_(not obj.toUInt()[1]) + + def testToNumberULongLong(self): + '''QVariant(int).toULongLong()''' + obj = QVariant('37') + self.assertEqual((37, True), obj.toULongLong()) + + def testToNumberULongLongNegative(self): + '''QVariant(negative int).toULongLong()''' + obj = QVariant('-37') + self.assert_(not obj.toULongLong()[1]) + + def testToNumberFloat(self): + '''QVariant(double).toFloat()''' + obj = QVariant('37.109') + self.assertEqual((37.109, True), obj.toDouble()) + + +class QVariantTypeName(unittest.TestCase): + '''QVariant.typeName()''' + + def testTypeNameQString(self): + '''QVariant(QString).typeName()''' + obj = QVariant(QString('aaaa')) + self.assertEqual('QString', obj.typeName()) + + def testTypeNameString(self): + '''QVariant(PyString).typeName()''' + obj = QVariant('aaaa') + self.assertEqual('QString', obj.typeName()) + + def testTypeNameInt(self): + '''QVariant(int).typeName()''' + obj = QVariant(34) + self.assertEqual('int', obj.typeName()) + + def testTypeNameDouble(self): + '''QVariant(double).typeName()''' + obj = QVariant(3.14) + self.assertEqual('double', obj.typeName()) + + def testTypeNameBool(self): + '''QVariant(bool).typeName()''' + obj = QVariant(True) + self.assertEqual('bool', obj.typeName()) + + def testTypeNameQByteArray(self): + '''QVariant(QByteArray).typeName()''' + obj = QVariant(QByteArray('aaaa')) + self.assertEqual('QByteArray', obj.typeName()) + + def testTypeNameNone(self): + '''QVariant().typeName()''' + obj = QVariant() + self.assertEqual(None, obj.typeName()) + + def testTypeNameQVariantList(self): + '''QVariant(QVariantList).typeName()''' + obj = QVariant([1, 2, 3, 4]) + self.assertEqual('QVariantList', obj.typeName()) + + obj = QVariant([1.0, 2.2, 3.3, 4.2]) + self.assertEqual('QVariantList', obj.typeName()) + + obj = QVariant(['aaa', 'bbb', 'ccc', 'dddd']) + self.assertEqual('QVariantList', obj.typeName()) + + obj = QVariant([QString('aaa'), QString('bbb'), + QString('ccc'), QString('dddd')]) + self.assertEqual('QVariantList', obj.typeName()) + + def testTypeNameQStringList(self): + '''QVariant(QStringList).typeName()''' + obj = QVariant(QStringList()) + self.assertEqual('QStringList', obj.typeName()) + obj = QVariant(QStringList(['aaa', 'bbb', 'ccc'])) + self.assertEqual('QStringList', obj.typeName()) + + +class QVariantConstructor(unittest.TestCase): + '''More qvariant constructions''' + + def testCopyConstructor(self): + '''QVariant copy constructor''' + obj = QVariant(1) + cpy = QVariant(obj) + + self.assertEqual(obj.type(), cpy.type()) + + def testQStringConstructor(self): + '''QVariant(PyString).type == QVariant.string''' + obj = QVariant("PySide") + self.assertEqual(obj.type(), QVariant.String) + + def testQSizeConstructor(self): + '''QVariant(QSize).type == QVariant.Size''' + mysize = QSize(0, 0) + variant = QVariant(mysize) + + self.assertEqual(variant.type(), QVariant.Size) + self.assertEqual(variant.toSize(), mysize) + + def testToList(self): + v = QVariant((1,2,3)) + self.assertEqual(v.toList(), (1, 2, 3)) + v = QVariant([0,1,2]) + self.assertEqual(v.toList(), [0, 1, 2]) + +if __name__ == '__main__': + unittest.main() |